




已閱讀5頁,還剩21頁未讀, 繼續(xù)免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第9節(jié)約束,講師:宋紅康新浪微博:尚硅谷-宋紅康,目標,通過本章學習,您將可以:描述約束創(chuàng)建和維護約束,什么是約束,約束是表級的強制規(guī)定有以下五種約束:NOTNULLUNIQUEPRIMARYKEYFOREIGNKEYCHECK,注意事項,如果不指定約束名,Oracleserver自動按照SYS_Cn的格式指定約束名創(chuàng)建和修改約束:建表的同時建表之后可以在表級或列級定義約束可以通過數據字典視圖查看約束,表級約束和列級約束,作用范圍:列級約束只能作用在一個列上,表級約束可以作用在多個列上(當然表級約束也可以作用在一個列上)定義方式:列約束必須跟在列的定義后面,表約束不與列一起,而是單獨定義。非空(notnull)約束只能定義在列上,定義約束,定義約束,列級表級,columnCONSTRAINTconstraint_nameconstraint_type,column,.CONSTRAINTconstraint_nameconstraint_type(column,.),NOTNULL約束,保證列值不能為空:,CREATETABLEemployees(employee_idNUMBER(6),last_nameVARCHAR2(25)NOTNULL,salaryNUMBER(8,2),commission_pctNUMBER(2,2),hire_dateDATECONSTRAINTemp_hire_date_nnNOTNULL,.,NOTNULL約束,只能定義在列級:,可以在PL/SQLDEV的Myobjects-Tables-employees-Checkconstraints中查看,UNIQUE約束,EMPLOYEES,UNIQUE約束,INSERTINTO,唯一約束,允許出現多個空值:NULL。,UNIQUE約束,可以定義在表級或列級:,CREATETABLEemployees(employee_idNUMBER(6),last_nameVARCHAR2(25)UNIQUE,emailVARCHAR2(25),salaryNUMBER(8,2),commission_pctNUMBER(2,2),hire_dateDATENOTNULL,.CONSTRAINTemp_email_ukUNIQUE(email);,用戶命名,系統命名,可以聲明在email后面:CONSTRAINTemp_email_ukUNIQUE,也可以如此末處聲明。,PRIMARYKEY約束,DEPARTMENTS,PRIMARYKEY,CREATETABLEdepartments(department_idNUMBER(4),department_nameVARCHAR2(30)CONSTRAINTdept_name_nnNOTNULL,manager_idNUMBER(6),location_idNUMBER(4),CONSTRAINTdept_id_pkPRIMARYKEY(department_id);,PRIMARYKEY約束,可以定義在表級或列級:,FOREIGNKEY約束,DEPARTMENTS,EMPLOYEES,FOREIGNKEY約束,可以定義在表級或列級:,CREATETABLEemployees(employee_idNUMBER(6),last_nameVARCHAR2(25)NOTNULL,emailVARCHAR2(25),salaryNUMBER(8,2),commission_pctNUMBER(2,2),hire_dateDATENOTNULL,.department_idNUMBER(4),CONSTRAINTemp_dept_fkFOREIGNKEY(department_id)REFERENCESdepartments(department_id),CONSTRAINTemp_email_ukUNIQUE(email);,FOREIGNKEY約束的關鍵字,FOREIGNKEY:在表級指定子表中的列REFERENCES:標示在父表中的列ONDELETECASCADE(級聯刪除):當父表中的列被刪除時,子表中相對應的列也被刪除ONDELETESETNULL(級聯置空):子表中相應的列置空,CHECK約束,定義每一行必須滿足的條件,.,salaryNUMBER(2)CONSTRAINTemp_salary_minCHECK(salary0),.,添加約束的語法,使用ALTERTABLE語句:添加或刪除約束,但是不能修改約束有效化或無效化約束添加NOTNULL約束要使用MODIFY語句,ALTERTABLEtableADDCONSTRAINTconstrainttype(column);,以createtableempasselect*fromemployees;為例,添加和刪除約束,altertableempmodify(empnamevarchar2(50)notnull);,添加約束,添加約束舉例,ALTERTABLEemployeesADDCONSTRAINTemp_manager_fkFOREIGNKEY(manager_id)REFERENCESemployees(employee_id);Tablealtered.,刪除約束,從表EMPLOYEES中刪除約束,ALTERTABLEemployeesDROPCONSTRAINTemp_manager_fk;Tablealtered.,無效化約束,在ALTERTABLE語句中使用DISABLE子句將約束無效化。,ALTERTABLEemployeesDISABLECONSTRAINTemp_emp_id_pk;Tablealtered.,激活約束,ENABLE子句可將當前無效的約束激活當定義或激活UNIQUE或PRIMARYKEY約束時系統會自動創(chuàng)建UNIQUE或PRIMARYKEY索引,ALTERTABLEemployeesENABLECONSTRAINTemp_emp_id_pk;Tablealtered.,SELECTconstraint_name,constraint_type,search_conditionFROMuser_constraintsWHEREtable_name=EMPLOYEES;,查詢約束,查詢數據字典視圖USER_CONSTRAINTS,SELECTconstraint_name,column_nameFROMuser_
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024~2025學年遼寧撫順東洲區(qū)七年級下冊5月期中考試數學試題
- 潔具生產能源審計對企業(yè)能效認證的影響考核試卷
- 糧食儲存通風設備批發(fā)商合作政策考核試卷
- 心理危機干預中的心理急救知識普及考核試卷
- 公共衛(wèi)生事件監(jiān)測系統性能評估考核試卷
- 勞務派遣服務中的企業(yè)戰(zhàn)略規(guī)劃與執(zhí)行考核試卷
- 住宿救助機構的社會企業(yè)風險管理考核試卷
- 跑道擴建項目勘察成果與工程設計銜接研究考核試卷
- 農業(yè)資源環(huán)境保護政策與農村環(huán)境教育推廣考核試卷
- 金屬涂層技術考核試卷
- 2025年高考化學總復習試題分類訓練:硫及其化合物(解析卷)
- 2023-2024學年廣東省深圳市龍華區(qū)八年級(下)期末英語試卷
- 濕疹護理課件教學課件
- 相關方需求和期望表
- 胃腸內鏡護士進修匯報
- 23J916-1 住宅排氣道(一)
- 生物基復合材料的LCA(生命周期評估)
- 【核心素養(yǎng)目標】人教版物理九年級 13.1分子熱運動 教案
- 第四課 拗音 課件初中日語人教版七年級第一冊
- 廣東省廣州市天河區(qū)2023-2024學年八年級下學期期末物理模擬試卷
- 甲乙方施工合同范本
評論
0/150
提交評論