oracle中约束只有表级和列级约束:联合主键约束是表级约束
1、约束类型
主键约束(primary key)
非空约束(not null)
唯一约束(unique)
外键约束(foreign key)
检查性约束(check)
check约束使用:
create table test3(
tid number,
tname varchar2(20),
gender varchar2(2) check (gender in(‘男’,’女’)),
sal number check(sal>0)
);
2、注意问题
(1)查数据,通过主键查最快(因为唯一性约束本身是一个索引)
(2)子表的外键必须是父表的主键
(3)当父表记录被子表 外键引用了,要删除该记录方法:
- 先把子表记录删除,再删父表记录
- 先把子表记录的外键值改为null,再删除父表记录
- 外键约束:
on delete cascade:当删除父表示,级联删除子表记录
on delete set null:将子表的相关依赖记录的外键值置为null
3、约束别名
使用所有约束并却别名:
create table student(
sid number constraint student_pk primary key,
sname varchar2(20) constraint student_name_notnull not null,
gender varchar2(2) constraint student_gender check(gender in (‘’男,’女’)),
email varchr2(40) constraint student_email_unique unique
constraint student _email_notnull not null,
deptno number constraint student_fk references dept(deptno) on delete set null
);