约束 对表的数据进行限定,保证数据的正确性,有效性,完整性。 类别:添加在数据名的后面 主键约束 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;
级联 更改外键 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