資料庫維護常用操作命令2--約束

lff1530983327發表於2015-05-21

 

---資料庫開發基礎---約束

1,約束的分類primary keyPK)主鍵約束,

foreign key(FK)外來鍵約束,

unique(UK)唯一約束,

check約束,

NOT null約束(NN)     -------有時候說的是四種約束,就是除了這個約束外的其他四種主鍵約束,

2.約束的建立語法

1>.主鍵約束

create table t(x int,y int,primary key(x));

create table t(x int constraint pk_t primary key,y int);

2>.外來鍵約束

create table t(z int constraint pk_t primary key,x int constraints fk_t references t);

create table t(z int,x int,primary key(z),foreign key(x) references t);

3>. unique 唯一鍵約束

create table t(z int constraint pk_t unique);

create table t(z int ,unique(z));

4>.check 約束

create table t1(z int ,age int check(age>0 and age<150));

create table t2(z int ,age int,check(age>0 and age<150));

5>.null約束

create table t3(z int ,age int not null);

6>組合鍵約束中的組合作為一個整體對約束物件進行一起約束

---組合主鍵同時不滿足唯一性時才拒絕,兩者均各不為空

create table t(x int,y int,primary key(x,y));

insert into  t values(1,1);-----YES

insert into  t values(1,NULL);--NO

insert into  t values(NULL,1);--NO

insert into  t values(1,2);-----YES

insert into  t values(NULL,NULL);--NO

對於nulloracle將其預設為unknow型別。

3.約束的修改語法

alter table t_emp add constraint fk_dept foreign key(deptno) references t_dept(deptno);---增加約束

alter table t_emp add constraint fk_deptno1 foreign key (deptno) references t_dept(deptno) on delete cascade;---增加可級聯刪除的外來鍵約束

alter table t_emp drop primary key;   ---------------刪除約束

alter table t_emp disable constraint fk_deptno1;-----使失效

alter table t_emp enable constraint fk_deptno1;------使生效

alter table t_ck1 modify id  constraint t_nk not null;-----已經存在的約束進行修改

alter table t_null modify id  constraint t_nk not null;-----已經存在的約束進行修改

在進行約束脩改或刪除過程中存在外來鍵子表與父表之間的級聯關係

alter table T_ORD_ORDER_CHANNEL drop constraint PK_T_ORD_ORDER_CHANNEL CASCADE;----級聯刪除

 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30018455/viewspace-1665012/,如需轉載,請註明出處,否則將追究法律責任。

相關文章