华清远见-重庆中心-MySQL知识点梳理

数据库

什么是数据库?

数据库是“按照数据结构来组织、存储和管理数据的仓库”。是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。

  • 是一个实体,它是能够合理保管数据的“仓库”,用户在该“仓库”中存放要管理的事务数据,“数据”和“库”两个概念结合成为数据库。

  • 是数据管理的新方法和技术,它能更合适的组织数据、更方便的维护数据、更严密的控制数据和更有效的利用数据。

java 和 数据库sql:

 

java与数据库的初级程序员应该可以做到:

  1. 服务器端的编程技术

  2. 数据库端编程技术

  3. 服务器如何访问数据库

  4. 客户端的编程技术

  5. 客户端如何访问服务器

  6. 怎么利用框架提高开发效率


数据的存储形式

  • 文件(存储在硬盘)

  1. 文件存储的格式

  2. 对数据处理可以通过java代码实现

  3. 缺点:读写速度慢,硬盘本身的特点就是读写慢。

  • 变量(存储在内存)

  1. 读写速度快,临时数据的存储

  • 数据库(数据库管理系统)

  1. 数据库管理系统(DBMS-database manage system)是一套软件,是一种存储和管理数据表的软件系统。

  2. 适用于大数据量,支持多人并发操作。

  3. 数据库中的数据是永久存储,数据操作效率高。


使用数据库之前

1.安装数据库

数据库安装方法很简单,这里仅做需要手动书写的地方

配置环境变量path,可以使用命令,操作数据库的数据。

 

命令行连接数据库服务器

 

安装客户端软件:

Navicat Premium 15: 通过客户端软件,连接到mysql服务器软件 , 然后使用图形化的操作界面,降低sql的难度。

 


数据库分类

关系型数据库 : MySQL , sql server , oracle , db2 ...

  1. 数据以二维表的方式存储

  2. 实体之间的关联关系

  3. 支持SQL(结构化查询语言)语言 (近期学习的重点)

非关系型数据库: redis (后期要使用) , MongoDB , Hbase .....

  1. 数据按不同的数据类型存储。

  2. 不支持SQL


ER模型(E - entity 实体 , R - realation 关系)

ER模型,就是将数据库中的table之间的关系,以图形的方式展示出来。

ER模型,就是创建数据库表的依据。

举行代表实体 , 菱形代表关系 , 椭圆代表实体的属性。

实体之间的关系:

  • 1对1 : 一个国家有一个总统

  • 1对多:一个班级有多个学生

  • 多对多: 课程和学生

 


mysql的命令行操作

连接到mysql服务器:

mysql -u root - p

使用mysql的命令

-- 是mysql的注释
​
show databases; -- 显示所有的数据库
​
use hello; -- 选择要使用的数据库的名字
​
show tables; -- 显示hello数据库中的所有的表
​
desc stu; -- 查看stu表结构
​
-- Field , 字段
​
-- Type , 字段的类型
​
-- key , 键
​
+--------+--------------+------+-----+---------+-------+
​
| Field | Type | Null | Key | Default | Extra |
​
+--------+--------------+------+-----+---------+-------+
​
| name | varchar(255) | YES | | NULL | |
​
| age | int | YES | | NULL | |
​
| gender | varchar(10) | YES | | NULL | |
​
+--------+--------------+------+-----+---------+-------+
​
insert into stu(name ,age , gender) values('邹麟',18,'女'); -- 插入数据的sql语
​
句
​
-- 插入成功之后,数据库的提示信息: Query OK, 1 row affected (0.01 sec)
​
select * from stu; -- 查询数据
​
+------+------+--------+
​
| name | age | gender |
​
+------+------+--------+
​
| 洪涵 | 21 | 男 |
​
| 林涛 | 20 | 男 |
​
| 刘思 | 20 | 女 |
​
| 邹麟 | 18 | 女 |
​
+------+------+--------+
​
update stu set age = 22 where name='洪涵'; -- 修改数据
​
-- 修改成功之后的提示信息: Query OK, 1 row affected (0.01 sec)
​
delete from stu ; -- 删除数据
​
-- 删除成功之后的提示信息: Query OK, 4 rows affected (0.01 sec)
​
drop table stu; -- 删除名字叫stu的表
​
drop database hello; -- 删除名字叫hello的数据库
​
create database cms; -- 创建名字教cms的数据库
​
create table test(id int , name varchar(6) , pwd varchar(8)); -- 创建一个
​
名字叫test的表
​
exit -- 退出mysql

注: 注释 -- 之后要加空格才能使注释生效


SQL(Struct Query Language) : 结构化查询语言

sql语言中,字符串可以使用单引号或者双引号 , 保证单双引号匹配

注释 : -- 注释内容 ,/* */

sql语言中,关键字不区分大小写 , 字段名不区分大小写 , 数据内容有大小写之分

比如: select 同SELECT , NAME 字段 , 也可以是name , 数据 “ALICE”和‘alice’就有区别

sql的使用:

  1. 创建数据库: create database 数据库名字;

    create database 数据库名字 default character set utf8; -- 指定了数据库的编码

    删除数据库 : drop database 数据库名字;

  2. 创建表:

    create table 表名(字段1 字段类型 约束条件 , 字段2 ....)

    • 如果字段名,表名和关键字重复了,那么就在字段名或表名上添加引号。

    • 尽量避免和关键字重名 。 一般表可以教前缀 : cms_stu --表示学生表, s_name -- 表示学生表的字段名

    • 约束条件: not null ,表示字段值不能是null .

    • int类型的数据,可以设置为自动增加 : auto_increment

    • 主键约束: primary key,主键的特征就是非空且不重复 , 一般用于实现表中的每行数据不重复。

    • 练习: 创建一个名字叫t_test的表,字段名包括 t_id int类型, 主键,并且自动增加,

      t_name 字符串类型 ,不为空,最大长度50 ,

      t_age int 类型

CREATE TABLE `cms`.`t_test` (
`t_id` int NOT NULL AUTO_INCREMENT COMMENT 'id',
`t_name` varchar(50) NOT NULL COMMENT '名字',
`t_age` int NULL COMMENT '年龄',
PRIMARY KEY (`t_id`)
);

 

3.删除表

drop table 表名 ;


数据类型

类型 含义 特点
tinyint 短整型 对应java 的 byte , short
int 整形 对应java 的int
bigint 长整型 对应java 的long
float 单精度浮点数 对应java 的float
double 双精度浮点型 对应java 的double
decimal(宽度,精度) 指定总长度,及其小数占的位数 如: decimal(10,3) 总长10,小数占3位
char(长度) 定长字符串 对应java的String,位数不足时,用空占位
varchar(长度) 可变长字符串 对应java 的String,位数不足时不用空占位,字符串实际长度为准。
text 文本 单纯的文本
date 日期 yyyy-MM-dd
time 时间 HH:mm:ss
datetime 日期时间 yyyy-MM-dd HH:mm:ss
timestamp(14或8) 毫秒 保存事件毫秒数 ,14表示 yyyyMMddHHmmss , 8表示yyyyMMdd


约束

约束名 概念 关键字
非空约束 是否允许字段为null null表示可以为空,not null表示不能为空。
主键约束 主键(primary key ) , 保证每行数据不重复, 并且主键值不能是null.一般会在建表的时候,给表设计要给id字段 primary key
唯一约束 保证字段值不重复 unique
外键约束 在有这个主从关系的表中,给有管理关系的字段,设置为外键约束 ,这个字段值,只能参考主表中的某个字段的值。 foreign key references
默认值 可以设置某个字段的默认值,如果没有给这个字段设置数据值,就采用默认值 default

外键约束详解:

 


建表的规则(范式)

  • 字段不可再分 , 比如手机号码和座机号码不应该放在同一个字段中。

  • 每个表都有一个主键 , 以保证每条数据是唯一的。

  • 每个字段都依赖主键 , 比如员工表,就不应该放部门信息

举例:

 

 

注:该可视化工具在表格中填写和勾选了相关数据之后,可以在SQL预览栏里查看SQL的语句书写,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值