约束
约束表中的字段,用于限制表中存储数据的规范 目的是保证数据存储的的规范,保证其有效
约束类型:
| 约束名 | 详细 | 字段 |
|---|---|---|
| 非空约束 | 添加字段的数据不能是空的 | not null |
| 唯一约束 | 保证添加字段的数据不能重复 | unique |
| 默认约束 | 保存数据时,如果存在没指定的值,则采用默认值 注意:如果传递值为null的话,则不采用默认值,采用null | default |
| 检查约束 | 保证字段的值满足一定条件 | check |
| 主键约束 | 主键是一行数据的唯一标识,有且只能存在一个 | primary key |
| 外键约束 | 用来在两张表的数据之间建立连接,保证数据的一致性 | foreign key |
外键约束
用来在两张表的数据之间建立连接,保证数据的一致性,完整性。 我们一般使用外键去关联主键,外键隶属主键,主键受外键制约
添加外键
sql
alter table 外键表表名 add constraint 外键名称 foreign key (字段名) references 主表(主表字段名);除了用单独的指令,也可以在创建表时就指定外键:
sql
CREATE TABLE 表名 (
列1 数据类型,
列2 数据类型,
...
[CONSTRAINT 外键名称] FOREIGN KEY (列名) REFERENCES 另一个表名(另一个表的列名)
);删除外键
sql
alter table 外键表 drop foreign key 外键名称;外键行为:
| 默认行为 | 如果父表的主键绑定了副键,则禁止进行更改 | no action / restrict |
|---|---|---|
| 级联行为 | 如果父表的主键被修改,副键也会一同被修改 | cascade |
| 置空行为 | 如果主键被删除,则副键会被置为null(如果他允许的话) | set null |
| 缺省行为 | 主键变更,副键设为缺省值。 | set default |
指令
~~~(添加外键指令)+ on update 行为 on delete 行为;