一、约束类型
- 非空约束:该列不允许包含空值。
- 主键约束:唯一性,非空性。
- 唯一约束:唯一性,可以空,但只能一个。
- 外键约束:需要建立两表间的关系并引用主表的列。
- 检查约束:对该列数据的范围、格式的限定。
二、创建表时定义约束
create table table_name(id number,name char(6) constraint table_nn not null );
constraint table_nn 自定义约束名,省略则由系统生成
[not null] 非空约束
[unique] 唯一性约束
[primary key] 主键约束
[check (salary>1000)] 检查约束
[,primary key(id,name)] 联合主键(末尾添加)
[,foreign key(id) references table_name1(id)] 外键约束(末尾添加)
三、定义已存在表约束
alter table emp1 modify(id constraint table_nn not null);
constraint table_nn 自定义约束名,省略则由系统生成
[not null] 非空约束
[unique] 唯一性约束
[primary key] 主键约束
alter table table_name add constraint table_pk primary key(id,name);
constraint table_pk 自定义约束名,省略则由系统生成
[check (id>3) 检查约束
[primary key(id,name)] 联合主键
[foreign key(id) references table_name1(id)) 外键约束
四、启用和停止约束
禁用约束:
alter table table_name disable constraint constraint_name;
启用约束:
alter table table_name endable constraint constraint_name;
级联禁用(同时禁用以它为外链接的字段约束):
alter table table_name disable constraint constraint_name cascade;
constraint_name 约束名称