学习目标:
1、掌握表级约束的建立
2、掌握约束的维护
学习过程:
一、表级约束
表级约束是指在定义了所有列之后定义的约束。不过要注意,非空约束(not null)只能在列级中定义, 而不能在表级中定义。
示例:
create table t_student
(
--物理id
stu_id int ,
stu_num char(4) not null,
stu_name varchar2(30) not null,--非空
stu_age int ,
stu_gender char(2) ,
stu_state char(1),
--第二种方式
constraint 约束名 约束条件
constraint PK_stu_id primary key(stu_id),
constraint UQ_stu_num unique(stu_num),
constraint CK_stu_gender check(stu_gender in ('男','女'))
);
二、维护约束
除了可以在定义表的时候定义约束,我们还可以通过修改的方式定义约束,这种方式是最推荐的方式,虽然写起来比较麻烦。但是可以更好的维护表结构和约束。
我们可以使用 alter table语句增加约束. 如果约束不再需要, 那么也可以使用 alter table语句删除约束, 另外用户还可以使用 alter table 语句修改约束名,禁止和激活约束,维护约束是由表所有者来完成的.
示例:
--格式:alter table table_name add constraint 约束名 约束条件
--添加约束
alter table t_student add constraint PK_stu_id primary key(stu_id);
alter table t_student add constraint UQ_stu_num unique(stu_num,stu_name);--联合唯一
alter table t_student add constraint CK_stu_gender check(stu_gender in ('男','女'));
--删除约束
alter table t_student drop constraint UQ_stu_num
--禁用约束
alter table t_student modify constraint CK_stu_gender disable;
--启动约束
alter table t_student modify constraint CK_stu_gender enable;