约束

2017-12-17  本文已影响0人  李昱俊

not null

NOT NULL约束只能定义在在列级上。

create table emp2(
empno number(5),
ename varchar2(10) not null,
job varchar2(9),
mgr number(4),
hiredate date,
sal number(7,2),
comm number(7,2)
deptno number(7,2) constraint emp2_deptno_nn not null,
)

unique

create table dept2(
deptno number(2),
dname varchar2(14) constraint dept2_dname_uq unique,
loc varchar2(13),
)

定义在表级:

create table dept2(
deptno number(2),
dname varchar2(14),
loc varchar2(13),
constraint dept2_dname_uq unique(name)
)

primary key

create table dept2(
deptno number(2) constraint dept_deptno_pk primary key,
dname varchar2(13),

)

定义在表级:

create table dept2(
deptno number(2),
dname varchar2(13),
 constraint dept_deptno_pk primary key(deptno)
)

foreign key

  1. FOREIGN KEY,也叫外键约束,外键确保了相关联的两个字段的关系:

2.主键表主键值被外键表参照时,主键表记录不允许被删除。

create table empss(
empno number(4),
ename varchar2(10) constraint empss_ename_nn not null,
job varchar2(9),
deptno number(7,2) not null constraint empss_deptno_fk foreign key references dept (deptno),
sal number(7,2)
)
create table empss(
empno number(4),
ename varchar2(10) constraint empss_ename_nn not null,
job varchar2(9),
deptno number(7,2) not null ,
sal number(7,2),
constraint empss_deptno_fk foreign key(deptno) references dept (depyno) on delete cascade
)

check

create table empss(
empno number(4),
ename varchar2(10) not null,
deptno number(7,2) constraint empss_deptno_ck check(deptno between 10 and 99),
sal number (7,2)
)

追加约束

例:在emp表中的mgr上添加一个外键约束,指示该列的值必须引用emp表中的empno值。

alter table emp 
add constraint emp_mgr_fk foreign key(mgr) references emp(empno)
alter table emp
modify(empno constraint emp_empno_nn not null )

删除约束

alter table emp 
drop constraint emp_mgr_fk(约束名)
alter table dept
drop primary key cascade

约束启用与禁用

alter table 表名 disable constraint 约束名 cascade

应用CASCADE选项禁用相依赖的外键约束

alter table 表名 enable constraint 约束名
上一篇 下一篇

猜你喜欢

热点阅读