目录
1 概述
概念:约束是作用于表中字段上的规则,用于限制存储在该字段的数据。
目的:保证数据库中数据的正确、有效性和完整性。
2 分类
3 语法
约束是作用于表中字段上的,可以在创建表/修改表的时候添加约束。
例如以下例子:
建表语句为:
CREATE TABLE tb_user(
id int AUTO_INCREMENT PRIMARY KEY COMMENT 'ID唯一标识',
name varchar(10) NOT NULL UNIQUE COMMENT '姓名' ,
age int check (age > 0 && age <= 120) COMMENT '年龄' ,
status char(1) default '1' COMMENT '状态',
gender char(1) COMMENT '性别'
);
修改字段语句(部分)为:
alter table emp modify id int AUTO_INCREMENT PRIMARY KEY COMMENT 'ID唯一标识';
alter table emp modify workno varchar(10) not null unique COMMENT '姓名';
alter table emp modify age tinyint check ( age>=0 and age <=120 ) not null COMMENT '姓名';
3 外键
外键:用来让两张表的数据之间建立连接,从而保证数据的一致性和完整性。
例如如下例子中:
emp的dept_id与dept的主键id关联,dept_id应当设置为外键。此时称dept为父表,emp为主表。
3.1 父表删除/更新行为
子表通过添加外键关联到父表后,父表删除或更新记录时会有不同的约束行为。(外键约束的是父表)
3.2 语法
外键约束的语法与其他一般约束有所不同
1.添加外键约束
可以在建表时添加外键约束:
CREATE TABLE 表名(
字段名 数据类型,
...
[CONSTRAINT] [外键名称] FOREIGN KEY (外键字段名) REFERENCES 主表 (主表列名) ON UPDATE 更新行为 ON DELETE 删除行为
);
也可以建表后添加外键约束:
ALTER TABLE 表名 ADD CONSTRAINT 外键名称 FOREIGN KEY (外键字段) REFERENCES
主表名 (主表字段名) ON UPDATE 更新行为 ON DELETE 删除行为;
通过ON UPDATE 更新行为 ON DELETE 删除行为来指定父表的更新/删除行为。
2.删除外键约束
ALTER TABLE 表名 DROP FOREIGN KEY 外键名称;