【Mysql】数据的完整性约束条件
完整性约束(可选项)
1. unsigned 把数字型变成无符号型
2. zerofill 自动填充0
3. default 设置默认
4. not null 不允许空值 如: create table t1 (sex enum(‘male’, ‘female’) not null defaut ‘male’
5. unique 设置该字段为唯一,不可重复
a) 单列唯一:
i. name char(10) unique
ii. name char(10), unique(name)
b) 联合唯一
i. ip char(15), port int, unique(ip, port)
6. primary 相当于 not null unique
a) 对于innodb 引擎来说, 一张表必须有一个主键
b) 单列主键
i. id int primary key
c) 联合主键
i. primary key(ip, port)
7. auto_increment 自增长字段
a) id int primary key auto_increment
b) 可不用赋值, 符合唯一性的情况下也可以赋值
c) set session autoincrement_increment=5 #设置局部步长
d) set global autoincrement_increment=5 #设置全局步长
e) set global auto_increment_offset=4 #起始偏移量必须小于步长
8. foreign key 外部字段
a) 增
i. create table dep(id int primary key, name char(16), comment char(50)); 建立被关联表, 前被关联表存在,被关联字段必须唯一
ii. foreign key(dep_id) references dep(id) on delete cascade on update cascade #建立外部字段, 删除同步, 更新同步
b) 改
i. insert into dep values(….) #先被关联表数据
ii. insert into emp values(…), #再出入数据,部门用代号取代
c) 删
i. delete form emp where dep_id=1; #先删除关联表的数据
ii. delete from dep where id=1 #再删除被关联表数据