暑期自学 Day 11 | 数据库 (四)- 约束
约束
- 对表的数据进行限定,保证数据的正确性,有效性,完整性。
- 类别:添加在数据名的后面
主键约束
- primary key,非空且唯一,数据的唯一标识
- 删除:
ALTER table t_name DROP PRIMARY KEY;
- 注意,主键删除与非空删除不一样。非空删除用 MODIFY。
- 自增长
AUTO INCREMENT
: 自动增长的值只和上一条记录有关系
非空约束
- not null,值不能为空
唯一约束
- unique,值不能重复
- 删除:
ALTER table t_name DROP INDEX id;
外键约束
- 一个主从表关系中,如果从表数据被删除,主表某一列的数据由于关联关系也会受影响。通过添加外键约束,使数据无法轻易在从表中删除。让表与表之间存在关系,保证数据正确性。
- 格式:
外键列, CONSTRAINT 外键名 FOREIGN KEY (外键列名) REFERENCE 主表名(主表列名);
- 一个例子:
-- 一方主表,部门表
CREATE TABLE department (
id INT PRIMARY KEY AUTO INCREMENT,
dep_name VARCHAR(20),
dep_location VARCHAR(20)
);
-- 多方从表,员工表
CREATE TABLE employ (
id INT PRIMARY KEY AUTO INCREMENT,
name VARCHAR(20),
age INT,
dep_id INT, -- 外键对应主表中的主键,部门编号
CONSTRAINT emp_dep_fk FOREIGN KEY (dep_id) REFERENCE department(id) -- 将外键关联,emp_dep_fk 是外键名称
);
-- 删除外键
ALTER TABLE employee DROP FOREIGN KEY emp_dep_fk;
-- 建表后添加外键
ALTER TABLE employ ADD CONSTRAINT emp_dep_fk FOREIGN KEY (dep_id) REFERENCE department(id);
--
级联
- 更改外键id时使用级联,可以使主从表关联的外键值联动更新。
- 添加级联:ON UPDATE CASCADE
ALTER TABLE employ ADD CONSTRAINT emp_dep_fk FOREIGN KEY (dep_id) REFERENCE department(id) ON UPDATE CASCADE;
- 删除级联:ON DELETE CASCADE
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: