一.储备知识
约束名 | 作用 |
---|---|
NOT NULL | 非空约束,规定某个字段不能为空 |
UNIQUE | 唯一约束,规定某个字段在整个表中是唯一的 |
PRIMARY KEY | 主键,非空且唯一 |
FOREIGN KEY | 外键 |
CHECK | 检查约束 |
DEFAULT | 默认值 |
外键约束
- 外键是构建于一个表的两个字段或两个表的两个字段之间的参照关系
- 从表的外键值必须在主表中能找到或者为空。
- 当主表的记录被从表参照时,主表的记录将不允许删除
级联
- ON DELETE CASCADE(级联删除):当父表中的列被删除时,字表中相对应的列也被删除
- ON DELETE SET NULL(级联置空):子表中相应的列置空
二.语法
例子:
create table emp(
id int(10) primary key auto increment,
username varchar(20) not null,#在数据类型后面添加约束
password varchar(20) not null,
constraint uk_username_emp UNIQUE KEY (username)#表级约束语法
);
例子:
create table emp(
id int(10) primary key auto increment,
username varchar(20) not null,#在数据类型后面添加约束
password varchar(20) not null,
constraint fk_username_emp FOREIGN KEY (username) references emp01(username)#表级约束语法
);
例子:
create table emp(
id int(10) primary key auto increment,
username varchar(20) not null,#在数据类型后面添加约束
password varchar(20) not null,
FOREIGN KEY (username, password)
references emp01(name, pwd, ON DELETE CASCADE)#表级约束语法
);
注意点:
- 唯一约束允许出现多个空值:null
- 同一个表可以有多个唯一约束,多个列组合的约束