版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
十一.數(shù)據(jù)庫中的約束(Constraint)
目標(biāo)結(jié)束本節(jié)課后,應(yīng)當(dāng)能達(dá)到如下目標(biāo):描述什么是約束創(chuàng)建和維護(hù)約束什么是約束?約束定義了表級(jí)的強(qiáng)制規(guī)則.約束定義了數(shù)據(jù)的完整性,.在Oracle中,有下列的強(qiáng)制類型:NOTNULL非空約束UNIQUE唯一約束PRIMARYKEY主鍵約束FOREIGNKEY外鍵約束CHECK定義一般性約束約束可以為一個(gè)約束命名,Oracle服務(wù)器也可以自動(dòng)為約束命名.約束的創(chuàng)建:當(dāng)創(chuàng)建表時(shí)創(chuàng)建約束在表創(chuàng)建后仍然可以創(chuàng)建約束定義一個(gè)列級(jí)或者表級(jí)的約束.查看數(shù)據(jù)字典中的約束.定義一個(gè)約束CREATETABLE[schema.]table (column
datatype[DEFAULTexpr] [column_constraint], ... [table_constraint][,...]);CREATETABLEemp( empnoNUMBER(4), enameVARCHAR2(10), ... deptnoNUMBER(2)NOTNULL, CONSTRAINTemp_empno_pk PRIMARYKEY(EMPNO)); 定義一個(gè)約束列級(jí)約束
表級(jí)約束column[CONSTRAINTconstraint_name]constraint_type,column,...
[CONSTRAINTconstraint_name]constraint_type(column,...),唯一鍵值約束
DEPTDEPTNODNAME LOC---------------- --------10 ACCOUNTING NEWYORK20 RESEARCH DALLAS30 SALES CHICAGO40 OPERATIONS BOSTON唯一鍵值約束
50 SALES DETROIT
60 BOSTON插入不允許
(DNAME-SALES
已經(jīng)存在)允許唯一鍵值約束在表級(jí)或者列級(jí)進(jìn)行定義SQL>CREATETABLEdept(2 deptno NUMBER(2),3 dname VARCHAR2(14),4 loc VARCHAR2(13),5 CONSTRAINTdept_dname_ukUNIQUE(dname));主鍵約束
DEPTDEPTNODNAME LOC---------------- --------10 ACCOUNTING NEWYORK20 RESEARCH DALLAS30 SALES CHICAGO40 OPERATIONS BOSTON主鍵插入
20 MARKETING DALLAS
FINANCE NEWYORK不允許(DEPTNO
20已經(jīng)存在)不允許
(DEPTNO是空的)主鍵約束在表級(jí)或者列級(jí)進(jìn)行定義SQL>CREATETABLEdept(2 deptno NUMBER(2),3 dname VARCHAR2(14),4 loc VARCHAR2(13),5 CONSTRAINTdept_dname_ukUNIQUE(dname),6 CONSTRAINTdept_deptno_pkPRIMARYKEY(deptno));外鍵約束
DEPTDEPTNODNAME LOC---------------- --------10 ACCOUNTING NEWYORK20 RESEARCH DALLAS...主鍵
EMPEMPNO ENAME JOB ...COMMDEPTNO7839 KING PRESIDENT 107698 BLAKE MANAGER 30...外鍵
7571 FORD MANAGER ...200 97571 FORD MANAGER ...20020插入不允許
(DEPTNO
9在DEPT表中不存在)Allowed
外鍵約束要么在表級(jí)要么在列級(jí)做出定義SQL>CREATETABLEemp(2 empno NUMBER(4),3 ename VARCHAR2(10)NOTNULL,4 job VARCHAR2(9),5 mgr NUMBER(4),6 hiredate DATE,7 sal NUMBER(7,2),8 comm NUMBER(7,2),9 deptno NUMBER(7,2)NOTNULL,10 CONSTRAINTemp_deptno_fkFOREIGNKEY(deptno)11 REFERENCESdept(deptno));外鍵約束關(guān)鍵字FOREIGNKEY: 定義子表中的列為外鍵。REFERENCES:標(biāo)記外鍵所要參考的父表和列ONDELETECASCADE: 允許在刪除父表的列的同時(shí),刪除子表的列。CHECK約束定義每一列所要滿足的條件在CHECK約束中不允許的表達(dá)式:參考CURRVAL,NEXTVAL,LEVEL,和ROWNUM這樣的偽列調(diào)用SYSDATE,UID,USER,和USERENV函數(shù)參考其它列值的查詢...,deptno NUMBER(2),CONSTRAINTemp_deptno_ckCHECK(DEPTNOBETWEEN10AND99),...增加一個(gè)約束可以增加、刪除一個(gè)約束。但不能更改一個(gè)約束。指定一個(gè)約束是有效還是無效??梢杂肕ODIFY子句為一個(gè)表的列增加NOTNULL約束。ALTERTABLE tableADD[CONSTRAINTconstraint]type(column);增加一個(gè)約束為EMP表增加一個(gè)外鍵約束,指定一個(gè)管理員必須已經(jīng)作為一個(gè)職員,存在于EMP表中.SQL>ALTERTABLEemp2ADDCONSTRAINTemp_mgr_fk3 FOREIGNKEY(mgr)REFERENCESemp(empno);Tablealtered.丟棄一個(gè)約束從EMP表中移除約束.SQL>ALTERTABLE emp2DROPCONSTRAINTemp_mgr_fk;Tablealtered.移除
DEPT表上的主鍵約束,因?yàn)橛蠧ASCADE選項(xiàng),所以同時(shí)刪除了在EMP.DEPTNO列上的外鍵約束.SQL>ALTERTABLE dept2DROPPRIMARYKEYCASCADE;Tablealtered.使約束失效執(zhí)行ALTERTABLE語句中的DISABLEz子句可以使約束失效.使用CASCADE選項(xiàng)可以同時(shí)使有依賴關(guān)系選項(xiàng)失效.SQL>ALTERTABLE emp2DISABLECONSTRAINT emp_empno_pkCASCADE;Tablealtered.使約束生效可以使用ENABLE子句來激活一個(gè)失效的約束.
一個(gè)唯一索引,或者主鍵索引在激活唯一鍵或主鍵時(shí)自動(dòng)產(chǎn)生.SQL>ALTERTABLE emp2ENABLECONSTRAINT emp_empno_pk;Tablealtered.級(jí)聯(lián)約束CASCADECONS
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 道克巴巴監(jiān)理制度
- 券商入職測試題目及答案
- 數(shù)據(jù)中心規(guī)劃與設(shè)計(jì)原則解析
- 軟環(huán)境長效機(jī)制制度
- 2025年滄州人事考試答案
- 2025年陸河人事考試及答案
- 2025年農(nóng)村基層事業(yè)編考試題及答案
- 2025年中信銀行筆試英語題目及答案
- 2025年信息技術(shù)招考筆試題及答案
- 2025年上海社區(qū)招聘筆試真題及答案
- 2024-2025蘇教版小學(xué)數(shù)學(xué)二年級(jí)上冊期末考試測試卷及答案(共3套)
- 光伏發(fā)電項(xiàng)目風(fēng)險(xiǎn)
- 風(fēng)力發(fā)電項(xiàng)目分包合同施工合同
- GB/T 8607-2024專用小麥粉
- 新版外國人永久居住身份證考試試題
- 2024年中考數(shù)學(xué)復(fù)習(xí):瓜豆原理講解練習(xí)
- 高一歷史期末試題中國近現(xiàn)代史
- (高清版)DZT 0210-2020 礦產(chǎn)地質(zhì)勘查規(guī)范 硫鐵礦
- QC080000體系內(nèi)部審核檢查表
- 鋼結(jié)構(gòu)課程設(shè)計(jì)-鋼結(jié)構(gòu)平臺(tái)設(shè)計(jì)
- 化纖有限公司財(cái)務(wù)流程及制度手冊
評(píng)論
0/150
提交評(píng)論