CONSTRAINT的用法举例

当我们在建表时,我们会考虑的表的一些约束,下面简述几种约束的用法:
SQL> select * from v$version where rownum<2;


BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
primary key:
SQL> create table diy_os(id number,name varchar2(10));
表已创建。
SQL> alter table diy_os add constraint pk0 primary key(id);
表已更改。
SQL> show user;
USER 为 "HR"
SQL> select owner,constraint_name,table_name from user_constraints where constraint_name='PK0';
OWNER
----------------------------------------------------------------------------------------------------
CONSTRAINT_NAME                TABLE_NAME
------------------------------ ------------------------------
HR
PK0                            DIY_OS

foreign key:
我在另一个用户wang上创建表wang(f_id number,f_name varchar2(10)).
在hr用户下:
SQL>grant reference on wang to hr;
在wang用户下:
SQL> alter table wang  add constraint fk7 foreign key(id) references hr.diy_os(id);
unique:
alter table diy_os  add constraint unq_1 unique (id);

check :
alter table t add constraint chk_1 check (id in(1,2,3)); ==》id后面跟的是表达式

not null:(这个约束是列级约束,和上面的不同,上面的是表级)
alter table diy_os  add constraint not_null check(id is not null);

read only:(view)基于视图的约束
create or replace view v as select * from test.id with read only;

check option:(view)基于视图的约束
create or replace view v as select * from diy_os where id<100 with check option constraint check_1; 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29876893/viewspace-1483798/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/29876893/viewspace-1483798/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值