SQL CHECK 约束
约束用于限制列中的值的范围。
如果对单个列定义 CHECK 约束,那么该列只允许特定的值。
如果对一个表定义 CHECK 约束,那么此约束会基于行中其他列的值在特定的列中对值进行限制。
1、语法
alter table 表名 add constraint 约束名
primary key (列名) /foreign key(列名) references 主表(列名)/
unique (列名)/
check(逻辑表达式)
default(缺省值) for 列名
2、常用的是外键约束
外键约束是对外键字段的值进行更新和插入时会和引用表中字段的数据进行验证,数据如果不合法则更新和插入会失败,保证数据的有效性
alter table students add foreign key(cls_id) references classes(id);
给students表添加 cla_id 外键约束
脚本语法:
- 添加外键约束: alter table 从表 add foreign key(外键字段) references 主表(主键字段);
- 删除外键约束: alter table 表名 drop foreign key 外键名;
- 获取外键约束名称:show create table teacher;
3、视图创建外键约束
(1)打开要建外键表的设计器
(2)右击选择“关系”。
(3)然后弹出“外键关系”窗体,我们选择“添加”
(4)然后点击“表和列规范”后面的小按钮,
(5)填写关系名(一般是表名_字段名 的命名方式)
选择左边主键表的id 对应右边要设置外键约束的外键表字段
(6)展开INSERT和UPDATE规范,在更新规则和删除规则有四个选项,分别是“不执行任何操作”、“级联”、“设置为NULL”、“设置默认值”。
默认的不执行任何操作。如果是“不执行任何操作”,当我们删除或更新主键表的数据时,会告诉用户不能执行删除或更新该操作。
“级联”的意思是当我们删除或更新主键表的数据时,会删除或更新外键表中所涉及的相关数据的所有行。
“设置Null”的意思是当我们删除或更新主键表的数据时,外键表中的外键列的值会设为Null,但前提是该列允许为空。
“设置默认值”的意思是如果我们将外键列定义了默认值,当我们删除或更新主键表的数据时,外键表中的外键列的值设为定义的默认值。