CONSTRAINT的用法舉例

Diy_os發表於2015-04-02
當我們在建表時,我們會考慮的表的一些約束,下面簡述幾種約束的用法:
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/,如需轉載,請註明出處,否則將追究法律責任。

相關文章