MYSQL - 约束
约束
对表的数据进行限定,保证数据的正确性,有效性,完整性。
类别:添加在数据名的后面
主键约束
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
本文地址:https://blog.csdn.net/zeki10/article/details/107054503