oracle數(shù)據(jù)庫(kù)完整性約束筆記

一、開(kāi)發(fā)中使用完整性約束

1.非空約束
2.唯一約束
3.主鍵約束
4.檢查約束
5.主外鍵約束
6.潛在約束(數(shù)據(jù)類(lèi)型的檢查)

形式:

    CONSTRAINT pk_mid_name PRIMARY KEY (mid,name) ,
    CONSTRAINT uk_email UNIQUE (email) ,
    CONSTRAINT ck_sex   CHECK (sex IN ('男','女'))

注意:

oracle中的約束也屬于數(shù)據(jù)庫(kù)中的一種對(duì)象。
在oracle中為了方便的進(jìn)行約束維護(hù),把所有的約束都作為一個(gè)一個(gè)獨(dú)立的數(shù)據(jù)庫(kù)對(duì)象進(jìn)行保存,這些信息都存放在數(shù)據(jù)庫(kù)字典中,每個(gè)約束都有一個(gè)自己的名字,這樣便于維護(hù)。方式為系統(tǒng)分配和用戶(hù)自定義(constraint關(guān)鍵字,約定為約束簡(jiǎn)寫(xiě)_字段)兩種。

二、級(jí)聯(lián)刪除

下面介紹難懂的主外鍵約束(父子表關(guān)系)
如果父表沒(méi)有,子表數(shù)據(jù)插入不進(jìn)去。刪除父表數(shù)據(jù),得把子表響應(yīng)的數(shù)據(jù)全部刪除掉。

1.也可以使用強(qiáng)制刪除表(不能再直接使用purge選項(xiàng)了)
DROP TABLE member CASCADE CONSTRAINT ;
2.級(jí)聯(lián)刪除
創(chuàng)建表時(shí)候,增加級(jí)聯(lián)刪除 on delete cascade;
CONSTRAINT fk_mid FOREIGN KEY(mid) REFERENCES member(mid) ON DELETE CASCADE
3.級(jí)聯(lián)更新,創(chuàng)建表的時(shí)候,設(shè)置級(jí)聯(lián)更新
CONSTRAINT fk_mid FOREIGN KEY(mid) REFERENCES member(mid) ON DELETE SET NULL

三、查看約束

1.查看全部的約束名稱(chēng)、類(lèi)型、約束設(shè)置對(duì)應(yīng)的表名稱(chēng)
SELECT constraint_name,constraint_type,table_name FROM user_constraints ;

2.查詢(xún)emp表上的全部約束
SELECT constraint_name,constraint_type,table_name FROM user_constraints WHERE table_name='EMP' ;
3.查詢(xún)user_cons_columns數(shù)據(jù)字典
SELECT * FROM user_cons_columns ;

四、修改約束

1.為member表的mid字段增加主鍵約束
ALTER TABLE member ADD CONSTRAINT pk_mid PRIMARY KEY(mid) ;
2.為member表的age增加檢查約束
ALTER TABLE member ADD CONSTRAINT ck_age CHECK(age BETWEEN 0 AND 200) ;
2.非空約束
ALTER TABLE member MODIFY (name VARCHAR2(30) NOT NULL) ;
3.禁用約束
ALTER TABLE advice DISABLE CONSTRAINT pk_adid ;
4.重啟約束
ALTER TABLE member ENABLE CONSTRAINT pk_mid ;
5.刪除約束(無(wú)關(guān)聯(lián)外鍵)
ALTER TABLE advice DROP CONSTRAINT pk_adid ;
6.刪除member表之中的“pk_mid”約束 (有關(guān)聯(lián)外鍵)
ALTER TABLE member DROP CONSTRAINT pk_mid CASCADE ;

五、總結(jié)

自律才能自由!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容