




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、Oracle約束約束QQ:13987796tel飛滕飛概念概念 oracleoracle使用完整性約束防止不合法的數據進入到基使用完整性約束防止不合法的數據進入到基表中。管理員和開發人員可以定義完整性約束,以增強表中。管理員和開發人員可以定義完整性約束,以增強商業規則,限制數據表中的數據,如果一個商業規則,限制數據表中的數據,如果一個DMLDML語句執行語句執行的任何結果破壞了完整性約束,的任何結果破壞了完整性約束,oracleoracle就會回滾語句,就會回滾語句,返回錯誤信息。返回錯誤信息。好處好處1.1.在數據庫應用的代碼中增強了商業規則。在數據庫應用的代碼中增
2、強了商業規則。2.2.使用存儲過程,完整控制對數據的訪問。使用存儲過程,完整控制對數據的訪問。3.3.增強了觸發存儲數據庫過程的商業規則。增強了觸發存儲數據庫過程的商業規則。1.1.域完整性域完整性 域完整性又稱為列完整性,指定一個數據集對某一域完整性又稱為列完整性,指定一個數據集對某一個列是否有效和確定是否允許空值。域完整性通常是經個列是否有效和確定是否允許空值。域完整性通常是經過使用有效性檢查來實現的,還可以通過限制數據類型、過使用有效性檢查來實現的,還可以通過限制數據類型、格式或者可能的取值范圍來實現。格式或者可能的取值范圍來實現。2.2.實體完整性實體完整性 實體完整性也稱行完整性,要
3、求表中的每一行有一實體完整性也稱行完整性,要求表中的每一行有一個唯一的標識符,這個標識符就是主關鍵字。例如,居個唯一的標識符,這個標識符就是主關鍵字。例如,居民身份證號是唯一的,這樣才能唯一地確定某一個人。民身份證號是唯一的,這樣才能唯一地確定某一個人。通過索引、通過索引、UNIQUEUNIQUE約束、約束、primary key primary key 約束可實現數據約束可實現數據的實體完整性。的實體完整性。3.3.參照完整性參照完整性 參照完整性也可以稱為引用完整性。參照完整行保參照完整性也可以稱為引用完整性。參照完整行保證主表中的數據與從表(被參照表)中數據的一致性。證主表中的數據與從表
4、(被參照表)中數據的一致性。在在oracleoracle中,參照完整性的實現是通過定義外鍵中,參照完整性的實現是通過定義外鍵(foreign keyforeign key)與主鍵()與主鍵(primary keyprimary key)之間的對應關)之間的對應關系實現的。如果在被引用表中的一行被某外關鍵字引用,系實現的。如果在被引用表中的一行被某外關鍵字引用,那么這一行既不能被刪除,也不能修改主關鍵字。那么這一行既不能被刪除,也不能修改主關鍵字。主鍵主鍵 在表中能唯一標識表的每個數據行的一個或多個表在表中能唯一標識表的每個數據行的一個或多個表列。列。外鍵外鍵 如果一個表中的一個字段或若干個字段
5、的組合是另如果一個表中的一個字段或若干個字段的組合是另一個表的主鍵則稱該字段(或若干字段的組合)為該表一個表的主鍵則稱該字段(或若干字段的組合)為該表的外鍵。的外鍵。如果定義了兩個表之間的參照完整性,則有如下規則如果定義了兩個表之間的參照完整性,則有如下規則(1)(1)從表不能引用不存在的鍵值。從表不能引用不存在的鍵值。(2)(2)如果主表中的鍵值更改了,那么在整個數據庫中,對如果主表中的鍵值更改了,那么在整個數據庫中,對從表中該鍵值的所有引用要進行一致的更改。從表中該鍵值的所有引用要進行一致的更改。(3)(3)如果主表中沒有關聯的記錄,則不能將記錄添加到從如果主表中沒有關聯的記錄,則不能將記
6、錄添加到從表。表。(4)(4)如果要刪除主表中的某個記錄,則不能將記錄添加到如果要刪除主表中的某個記錄,則不能將記錄添加到從表。從表。完整性約束是通過限制列數據、行數據和表之間的數據完整性約束是通過限制列數據、行數據和表之間的數據來保證數據完整性的有效方法。來保證數據完整性的有效方法。約束的狀態約束的狀態在在oracleoracle中,完整性約束有以下中,完整性約束有以下4 4種狀態種狀態(1 1)禁止的非校驗狀態。禁止的非校驗狀態表示該約束是不起作)禁止的非校驗狀態。禁止的非校驗狀態表示該約束是不起作用的,即使該約束定義依然存儲在數據字典中。用的,即使該約束定義依然存儲在數據字典中。(2 2
7、)禁止的校驗狀態。禁止的校驗狀態表示對約束列的任何修改)禁止的校驗狀態。禁止的校驗狀態表示對約束列的任何修改都是禁止的。這是,該約束上的索引都被刪除。約束也被禁止。但都是禁止的。這是,該約束上的索引都被刪除。約束也被禁止。但是,這時仍然可以向表中有效地添加數據,即使這些數據與約束有是,這時仍然可以向表中有效地添加數據,即使這些數據與約束有沖突也沒關系。沖突也沒關系。(3 3)允許的非校驗狀態或強制狀態。允許的非校驗狀態或強制狀)允許的非校驗狀態或強制狀態。允許的非校驗狀態或強制狀態可以向表中添加數據,但是與約束有沖突的數據不能添加。如果態可以向表中添加數據,但是與約束有沖突的數據不能添加。如果
8、表中已存在的數據與約束沖突,這些數據依然可以存在。表中已存在的數據與約束沖突,這些數據依然可以存在。(4 4)允許的校驗狀態。允許的校驗狀態表示約束處于正常的狀態。)允許的校驗狀態。允許的校驗狀態表示約束處于正常的狀態。這時,表中所有的數據,無論是已有的還是新添加的,都必須滿足這時,表中所有的數據,無論是已有的還是新添加的,都必須滿足約束條件。約束條件。域完整性的實現域完整性的實現 oracleoracle可以通過可以通過checkcheck約束實現域完整性。約束實現域完整性。CheckCheck約約束實際上是字段輸入內容的校驗規則,表示一個字段的束實際上是字段輸入內容的校驗規則,表示一個字段
9、的輸入內容必須滿足輸入內容必須滿足checkcheck條件。條件。語法格式語法格式Create table table_nameCreate table table_name(column_name datatype not null | null(column_name datatype not null | nulldefault constraint_expressiondefault constraint_expressionConstraint check_name check(check_expression)Constraint check_name check(check_ex
10、pression) )其中:其中:checkcheck表示定義表示定義checkcheck約束,其中的約束,其中的check_expressioncheck_expression邏輯表邏輯表達式,稱為達式,稱為checkcheck約束表達式。約束表達式。例:創建例:創建bookbook表表Create table books(book_id number(10),Book_name varchar2(50) not null,Book_desc varchar2(50) default new book,Max_lvl number(6,2) not null,Trade_price numb
11、er(4,1) not null,Constraint ch_cost check(max_lvl=250);修改修改checkcheck約束約束Alter table table_name add (constraint check_name Alter table table_name add (constraint check_name check(check_expression)check(check_expression)刪除刪除checkcheck約束約束Alter table table_name drop constraint check_nameAlter table ta
12、ble_name drop constraint check_name 實體完整性的實現實體完整性的實現 一個表只能有一個一個表只能有一個primary keyprimary key約束,而且約束,而且primary primary keykey約束中的列不能取空值。約束中的列不能取空值。Primary keyPrimary key約束和約束和uniqueunique約束的區別約束的區別(1)一個數據表只能創建一個primary key約束,但一個表中可以根據需要對不同的列創建若干個unique約束。(2)Primary key 字段的值不允許為null,而unique字段的值可取null。語
13、法語法主鍵約束主鍵約束ALTER TABLE table_nameADD CONSTRAINT pk_name PRIMARY KEY (pk_id)UniqueUnique約束約束ALTER TABLE table_nameADD CONSTRAINT uk_nameUNIQUE (column_name,n)參照完整性的實現參照完整性的實現 對于兩個相關聯的表(主表與從表)進行數據插入對于兩個相關聯的表(主表與從表)進行數據插入和刪除時。通過參照完整性保證它們之間數據的一致性。和刪除時。通過參照完整性保證它們之間數據的一致性。利用利用foreign keyforeign key表示外鍵。表
14、示外鍵。Primary keyPrimary key創建時候應考慮的因素創建時候應考慮的因素(1)(1)在刪除主表之前,必須刪除在刪除主表之前,必須刪除foreign keyforeign key約束。約束。(2)(2)如果不刪除或禁止如果不刪除或禁止foreign keyforeign key約束,則不能刪除主表約束,則不能刪除主表(3)(3)在刪除包含主表的表空間之前,必須刪除在刪除包含主表的表空間之前,必須刪除foreign key foreign key 約束。約束。語法語法create table table_name(column_name datatype references
15、ref_table(ref_column),n)修改修改Alter table table_nameAdd constraint constraint_nameForeign key (column,n)References ref_table(ref_column,n)Alter tableAlter table的記憶方法的記憶方法Alter table Alter table 命令有許多選項命令有許多選項: :1)1)、你不得不告訴、你不得不告訴OracleOracle你準備你準備alteralter什么表:什么表: Alter table table_nameAlter table ta
16、ble_name2)2)、然后,你準備做什么?、然后,你準備做什么?Adding Adding 一個約束一個約束 ALTER TABLE table_name ADD CONSTRAINTALTER TABLE table_name ADD CONSTRAINT3)3)、強烈建議但不要求為約束定義個名字。約束名不需要放在引號、強烈建議但不要求為約束定義個名字。約束名不需要放在引號里,但會以大寫字母形式存儲在數據字典里,里,但會以大寫字母形式存儲在數據字典里, ALTER TABLE temp ADD CONSTRAINT pk_tempALTER TABLE temp ADD CONSTRAI
17、NT pk_tempAlter tableAlter table的記憶方法的記憶方法4)4)、表示約束類型將是、表示約束類型將是Primary KeyPrimary Key,UniqueUnique,Foreign KeyForeign Key,或,或CheckCheck約束約束 ALTER TABLE temp ADD CONSTRAINT pk_temp PRIMARY KEYALTER TABLE temp ADD CONSTRAINT pk_temp PRIMARY KEY5) 5) 、跟在約束類型后面有幾種特殊選項,、跟在約束類型后面有幾種特殊選項,Primary KeyPrimary Key和和UniqueUnique約約束,需要指定約束的列;束,需要指定約束的列;CheckCheck約束需要指定約束規則。約束需要指定約束規則。 ALTER TABLE temp ADD CONSTRAINT pk_temp PRIMARY KEY ALTER TABLE temp ADD CONSTRAINT pk_temp PRIMARY KEY (ID);(ID);6) 6) 、Primary KeyPrimary Key和和Uni
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 品種多樣微生物檢驗技師考試題目及答案
- 2025年證券市場現狀與前景試題及答案
- Lesson 6“Betty's Clothes”(教學設計)-2024-2025學年冀教版(三起)英語四年級上冊
- 財務透明度對企業管理的影響試題及答案
- 提問策略課題申報書
- 牛刀小試2025年注冊會計師考試重點突破試題及答案
- 口語交際課題申報書
- 軟課題項目申報書
- 注冊會計師企業會計準則解讀試題及答案
- 微生物實驗室污染防護措施試題及答案
- 四川省宜賓市第三中學2024-2025學年高二下學期3月月考語文試題(含答案)
- 2024年鄭州工業應用技術學院單招職業適應性測試題庫附答案
- 農業合作社管理與運營模式試題及答案
- Unit 4 Clothes 單元整體(教學設計)-2024-2025學年人教精通版(2024)英語三年級下冊
- 2025年版中等職業教育專業教學標準 710205 大數據技術應用
- 2025年河南省鄭州市九年級中考一模數學試題 (原卷版+解析版)
- 項目燃油供給系統檢修廣東交通汽車技術系課件
- 2025榆林定邊縣國有企業財務會計人員招聘(10人)筆試參考題庫附帶答案詳解
- 2024年公務員考試中財務知識的考察試題及答案
- 治理鹽堿可行性報告
- 任務三家庭清掃有工序(教學課件)二年級下冊勞動技術(人美版)
評論
0/150
提交評論