约束
2017-12-24 本文已影响0人
李哈哈_bing
NOT NULL约束(只能定义在列级上):
确保被约束的列所有记录都不能为空值。
指定约束的名字:
(ename varchar2(20)constraint emp_ename nn NOT NULL)
UNIQUE约束:
确保表中的某一列或者某几列组合的行数据必须唯一,每个表可以有多个unique约束,unique约束允许输入空值
指定约束的名字:
列级:(dname varchar2(20) contraint dept_d_uk unique)
表级:(dname varchar2(20) contraint dept_d_uk unique(dname))
PRIMARY KEY约束
主键约束,用来确保表中的某一列或者某几列组合的所有行数据必须唯一,并且确保作为主键的一部分的列不能为空,每个表只有一个主键
指定约束的名字:
列级:
(dname varchar2(20) contraint dept_dname_pk primary key)
表级:(dname varchar2(20) contraint dept_d_pk primary key(dname))
FOREIGN KEY约束:
1.确保相关联的两个字段的关系:
————外键列的值必须在引用列值的范围内,或者为空;
————外键参照的列必须是主键或者唯一键;
2.主键表主键值被外键参照时,主键记录不允许被删除
列级:(`constaint emp_deptno_fk references dept(deptno)`)
表级:(`constraint emp_deptno_fk foreign key (deptno) references dept(deptno) `)
CHECK约束:
检查性约束,确保某个列的所有行数据都必须满足的条件
列级:(`constaint emp_deptno_ck check(deptno between 10 and 99)`)
表级:(`constraint emp_deptno_ck check(deptno between 10 and 99)
追加约束
1.在emp表中的mgr上添加一个外键约束指示该列的值必须引用emp表中的empno值。
alter table emp add constraint emp_mgr_fk
foreign key (mgr)
references emp (empno)
2.追加NOT NULL约束
alter table emp modify
(column {contraint 约束名} not null)
删除约束
1.从emp表中删除emp_mgr_fk约束
alter table emp drop constraint emp_mgr_fk
2.删除dept表上的primary key约束,并且删除相关联的在emp表deptno上的foreign key约束
ALTER TABLE DEPT DROP PRIMARY KEY CASCADE(级联删除)
禁用约束
alter table 表名 disable constraint 约束名{cascade}
启用约束
alter table 表名 enable constraint 约束名
相关的数据字典
不行GGle