1.概念
约束
:对表中数据进行限定,保证数据的正确性、有效性和完整性
2.约束的分类
- 主键约束:primary key
- 非空约束:not null
- 唯一约束:unique
- 外键约束:foreign key
2.1.非空约束(not null,值不能为null)
创建表时添加非空约束
去掉表的非空约束
创建完表再添加非空约束
2.2.唯一约束(unique,值不能重复)
创建表时添加唯一约束
- !!!注意:
MySQL中,唯一约束限定的列的值可以有多个NULL
删除唯一约束
创建表后添加唯一约束
2.3.主键约束(primary key,非空且唯一)
- 含义:非空且唯一
- 注意:
一张表只能有一个字段为主键
,主键就是表中的唯一标识 - 在创建表时添加主键约束
删除表中主键索引
生成表后添加主键约束
2.4.自动增长(auto_increment)
自动增长
:如果某一列是数值类型的,使用auto_increment可以完成值的自动增长
,一般配合主键使用
创建表时添加自增长
- 注意:自增长是从最大的值继续增长
删除自动增长
建表后添加自动增长
2.5.外键约束(foreign key)
外键
:让表与表产生关系,保证数据的正确性
创建表时添加外键
create table 表名(
字段列表
创建表的外键列,
constraint 外键名称 foreign key (本表的外键列名称) references 关联表名称(外键列在关联表中名称)
);
删除外键
:alter table 表名 drop foreign key 外键名称;
创建表之后添加外键
:alter table 要添加外键的表名 add constraint 外键名 foreign key (要添加外键表的外键列名) references 关联表名称(外键列在关联表中名称)
2.6.级联操作(方便但是危险)
级联
:相互关联的表操作同步,保证数据正确性
添加级联
:
alter table 要添加外键的表名 add constraint 外键名 foreign key (要添加外键表的外键列名) references 关联表名称(外键列在关联表中名称) on update cascade on delete cascade;- 分类
级联更新
:on update cascade,修改同步级联删除
:on delete cascade,删除同步