17/12/13约束
约束命名规则
表明_列名 _约束类型
unique约束(唯一约束)
- constraint(建立约束)
primary key=(主键)约束
*主键数据唯一,不能包含空值,每个表只能创建一个主键。
foreign key = (外键)约束
- 外键列的值必须在引用列值得范围内,或者为空
- 外键参照的列必须是主键或者唯一列
- 主键表主键值被引用时,主键表记录不允许被删除
-references: 引用在列一级
create table emp( ...,deptno number(7,2) not null
constraint emp_deptno_fk references dept (deptno),...)
-foreign key: 定义在表一级
create table emp( ...,constraint emp_deptno_fk foreign key (deptno)
references dept (deptno),...)
注:
on delete cascade:当父表中的行被删除时,子表中相依赖的行同时被删除。
on delete set null:当父表中的行被删除时,子表中相依赖的行同时被转换为空值。
如没有上述选项时,当父表中的行被删除时,如果父表中的行在子表中被引用,则提示不能删除。
check约束
check约束,也叫检查性约束,确保某个列的所有行数据都要满足的条件。
追加约束
也可以用alter table的语法为表:
-追加或者删除约束,但不修改它的结构;
-启用或禁用约束
-用modify子句添加一个not null约束
约束的启用与禁用
- 禁用约束语法
alter table 表名 disable constraint 约束的名字 [cascade]
应用擦拭
- 启用约束语法
alter table 表明 enable constraint 约束的名字
网友评论