1.创建表的语法
2.数据类型
整数、小数、字符串、时间、
特殊类型 枚举 集合 json
3.数据的操作
数据的存储,表格中添加数据
insert into表明(字段列表)values(对应的值)
4.数据表的数据约束
1.非空约束 not null
解释:当自端添加非空约束的时候,当前字段就不允许插入null值,如果插入就报错
字段名 类型(长度) not null
2.默认default
解释,如果没有给次字段添加数据,默认自动添加默认值
字段名 类型(长度)default 默认值
3.检查check
解释:检测你传入的值是否在给定范围内
mysql不支持 使用enum和set实现
4.唯一unique
解释:一旦字段被定义成唯一约束,表示当前字段的值不能重复,可以为null
语法:
字段添加:字段名 类型(长度)unique
独立添加:
【constraint】约束名 unique(字段名)
因为标注的数据列是惟一的,所以方便与查询,数据库系统自动对该字段建立索引Btree【二叉树】
如果没有给唯一约束起名字,默认是约束创建的索引名字是字段名,可以自己给索引起名字
查看对应表的索引语法:
show index from 表名;
5.主键约束primary key
解释:相当于 unique + not null 但是高于
主键约束的字段 唯一且不为空【null在数据库中表示无穷的意思,无法比较】
主键才是替代unique来进行准确地数据查询
主键约束分类
单主键的方式,一个表中只有一列拿出来作为主键,方便唯一查询
联合主键的方式:一个表中有多个字段一起来表示一条数据唯一不为空 是unique做不到
例如:
uname【primary key】upassw【primary key】
张三 123
张三 1234
李四 123
创建方式:
字段:字段名 类型(长度) primary key
独立:constraint 约束名 primary key(字段1,字段2.....)
备注:每一个表只能创建一个主键,只能使用一次primary key
联合主键唯一方式:
主键字段1-主键字段2-主键字段3.....的值是唯一的
联合主键比较耗费资源-尽量不用,除非必须使用
6.外键约束 froeign key
解释:主要用来多个表之间建立联系
外键一般关联另外一个表的主键
外键与被关联的主键定义一致,依赖于被关联的主键存在
定义语法:
【constraint 外键的名字】 foreign key(字段名) references 关联的表(主键字段)
编写案例:学生和成绩的关联
学生表
学号 名字
成绩表
编号 学生学号 成绩 科目
注意:一旦两个表发生了主外键关联,外键字段的值必须是关联的主键字段中有的才行
7.自增约束 auto_increment
解释:当字段名被定义了自增约束,当前字段的数据就会自动增长,一般用表格数据的主键编号
语法:
字段名 类型(长度) auto_increment
8.删除表的操作
语法:drop table[if exists] 表1,表2....
9.修改表
1)查看数据表创建语法
show create table 表名;
2)修改数据库表的名字:
alter table 原来的表名 rename to新的表名
rename table 原来的表名 to 新的表名
3)添加的信息
添加字段:
alter table 表名 add column 字段名 类型(长度)【约束】【first|after 字段】
添加约束和索引等 独立添加
alter table 表名 add primary key(字段)references 表名(字段)|unique(字段)
4)删除信息
删除约束:
alter table 表名 drop primary key ;
删除字段
alter table 表名
第四件事情:速狙处理---dml
1.dml语言数据处理
将数据添加到表格 从表格移除 修改数据 从表格获取数据查看
2.创建数据库 创建表
3.表中添加数据的语法 要叫插入数据 关键字 insert
语法1:
insert into 表名(字段1,字段2...)values(值1,值2......)
备注:字段需要和值一一对应,个数和顺序对应,每插入一条数据就表示在表格中添加一行数据
如果我们是给表中所有字段添加数据,表名后面的字段列表可以省略,默认的字段个数就是表中所有的字段,顺序按照添加字段或者创建表的时候字段顺序
insert into 表名 values(值1,值2....)
语法2:
insert into 表名(字段1.字段2......)values(值1,值2....)(值1,值2......),(值1,值2....)
语法3:
insert into 表名(字段1,字段2)select 字段1,字段2,....from存在的表名
4.删除数据 delete
delete from 表名【where 条件】
备注:如果不加【where】表示删除所有的数据
截断表:
truncate table 表名;
delete 和 truncate区别:
delete只是删除表中的数据,表中的一些特殊设置结构没有改变,比如自增
truncate,截断表,不仅仅删除数据,相当于将表删除,再创建一个新的