约束
保证数据完整一致性
- 非空约束 not null
限制改字段不能为 null
- 唯一约束 unique
限制该字段数据唯一,不能重复
- 主键约束 primary key
非空切唯一
- 默认约束 default
保存数据时如果未指定改字段值,则使用默认值
- 检查约束 check
保证字段满足某一条件
- 外键约束 foreign key
两张表关联的条件
示例
create table user (
id int primay key auto_increment , # 主键 自增长
name varchar(10) not null unique, # 不为空,唯一
age int chek(age>0&&age<120), # 年龄 0-120
status char(1) default '1' # 默认值 1
) comment '用户表;
外键约束
使用 foreign key ,仅有外检的称为子表(从表),关联表未附表(主表)
-
主表删除数据时,如果子表有关联的数据,外键约束会报错
-
指定更新、删除行为
casecade 主表更新时,子表对应的外键也会被更新,如果主表删除,对应关联的子表数据也会删除
set null 主表删除是子表 对应的外键设置为 null
alter table 表名 add constraint 外键名称 foreign key (外检名称) references 主表{主键id} on update casecade on delete casecade
alter table 表名 drop foreign key 外键名称
# 添加外键约束
alter table emp add constraint fk_emp_dept_id foreign key (dept_id) references dept(id)
# 删除外键约束
alter table emp drop foreign key fk_emp_dept_id