1. 主键约束:主键表示是一个唯一的标识,本身不能为空。
2. 唯一约束:在一个表中只允许建立一个主键约束,而其他列如果不希望出现重复的话,则就可以使用唯一约束。
3. 检查约束:检查一个列的内容是否合法。
使用检查约束来判断一个列中插入的内容是否合法,例如:年龄的取值范围、性别的取值范围。
4. 非空约束:像性别这样的字段就不能为空。
5. 外键约束:在两张表中进行约束的操作。
例如:
create table person(
pid varchar2(10) not null,
name varchar2(20) unique not null,
age number(3) not null check(age between 0 and 100),
birthday date not null,
sex varchar2(2) default '男',
address varchar2(255),
constraint person_pid_pk primary key(pid),
constraint person_name_uk unique(address),
constraint person_sex_ck check(sex in('男','女'))
);
create table book(
bid number primary key not null,
bname varchar(30),
bprice number(5,2),
pid varchar2(10),
constraint person_book_pid_fk foreign key(pid) references person(pid)
);
注意:
关联表删除时,先删除子表,后删除主表,因为子表中有对主表的外键引用,所以先删除子表或子表数据
为了保持数据操作的一致性以及删除的级联操作,我们在创建表的时候需要修改约束,如下:
constraint person_book_pid_fk foreign key(pid) references person(pid) on delete cascade
6. 修改约束:alter table 表名 add constraint 约束名 约束类型(约束字段)
alter table person add constraint person_pk primary key(pid)
alter table person add constraint person_name_uk unique(pid)
alter table person add constraint person_age_ck check(age between 0 and 150)
7. 删除表时同时删除约束
drop table 表名 cascade constraint
8. 删除约束
alter table 表名称 drop constraint 约束名