`
lifaming15
  • 浏览: 58837 次
  • 来自: ...
文章分类
社区版块
存档分类

Oracle约束介绍

 
阅读更多

Oracle数据库约束分为以下几种:

1:not null和check约束

2.PK主键约束

3.Unique唯一值约束

4.FK外键约束

下面介绍了以上4种约束的创建,添加,删除方法:

1.check约束

当创建约束时,系统会自动给约束取名,也可用户自己取名

>SQL create table person(id int, sex varchar2(50)) constraint person_constraint check(sex in('男','女'));

对于已存在表,添加约束

>SQL alter table person add constraint person_constraint check(sex in ('男','女'));

删除约束

>SQL alter table person drop constraint person_constraint;

2.主键约束

>SQL create table person(id int primary key,name varchar2(50));

主键约束功能:

a.保证此列的唯一值

b.一个表中只能有唯一的primary key

c.此列不允许null值

d.可以将主键设定到多个列上(复合主键),如:create table person(firstName varchar2(50), lastName varchar2(50), constraint x_m primary key(firstName,lastName));

删除主键约束:

>SQL alter table person drop primary key;

3.unique约束

功能:

a,允许有无数的null值

b.在一个表中可以有多个unique约束

c.值是唯一的

4.外键约束

外键约束只能是主键列中任意一个

>SQL create table product(id int, p_name varchar2(50));

>SQL create table price(id int, p_id int , price int, constraint p_f_refer_product_p_id foreign key(p_id) references product(id));

对于已存在表:

>SQL alter table price add constraint refer_product_p_id foreign key(p_id) references product(id);

如果要delete product 表中的一条记录,当该记录有对应价格记录时,普通方法不能删除,需要使用cascade(级联完整性(主表的行改变,从表也相应改变))

方法:

在创建表时或修改时加上on delete cascade

如:alter tavle price add constraint refer_product_p_id foreign key(p_id) references product(id) on delete cascade;

有时候,我们要向子表中添加数据,而不想让子表检查约束,我们必须先临时关闭约束,再添加数据.

如:

>SQL alter table price disable constraint refer_product_p_id;

>SQL insert into price values...

>SQL alter table price enable novalidate constraint refer_product_p_id;

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics