1. 程式人生 > >Oracle資料庫 資料完整性和DML語句

Oracle資料庫 資料完整性和DML語句

 資料完整性和DML語句

資料完整性

資料完整性(Data Integrity)是指資料的精確性(Accuracy) 和可靠性(Reliability)。它是應防止資料庫中存在不符合語義規定的資料和防止因錯誤資訊的輸入輸出造成無效操作或錯誤資訊而提出的。資料完整性指儲存在資料庫中的所有資料值均正確的狀態。如果資料庫中儲存有不正確的資料值,則該資料庫稱為已喪失資料完整性。資料庫採用多種方法來保證資料完整性,包括約束、規則和觸發器。什麼是約束

約束是在表上強制執行的資料校驗規則.約束主要用於保證資料庫的完整性。當表中資料有相互依賴性時,可以保護相關的資料不被刪除.大部分資料庫支援下面五類完整性約束:

NOT NULL非空UNIQUE Key唯一鍵PRIMARY KEY主鍵FOREIGN KEY外來鍵CHECK檢查DEFAULT預設值約束概述

約束作為資料庫物件,存放在系統表中,也有自己的名字建立約束的時機在建表的同時建立建表後建立(修改表)按照建立方式可分為列級表級約束列集約束與表集約束

列級約束直接跟在列後定義,不再需要指定列名,與列定義之間用空格分開。表級約束通常放在所有的列定義之後定義,要顯式指定對哪些列建立列級約束。與列定義之間採用英語逗號,隔開。如果是對多列建聯合約束,只能使用表級約束語法。

非空約束(Not null)

列級約束,只能使用列級約束語法定義。確保欄位值不允許為空只能在欄位級定義

例項

       CREATE TABLE tb_student(               id number PRIMARY KEY,              NAME VARCHAR2(18) NOT NULL         )唯一約束

唯一性約束條件確保所在的欄位或者欄位組合不出現重複值同一張表內可建多個唯一約束唯一性約束條件的欄位允許出現多個NULL唯一約束可由多列組合而成建唯一約束時Oracle會為之建立對應的索引。CREATE TABLE tb_student(    id number PRIMARY KEY,    NAME VARCHAR2(18) UNIQUE NOT NULL

)主鍵約束主鍵是表中唯一確定一行資料的欄位。一個表中只允許一個主鍵主鍵從功能上看相當於非空且唯一主鍵約束不允許為NULL主鍵欄位可以是單欄位或者是多欄位的組合當建立主鍵約束時,Oracle為主鍵建立對應的索引

CREATE TABLE tb_student(    id number PRIMARY KEY,    NAME VARCHAR2(18))定義複合主鍵當定義約束的時候, 不僅可以基於單列定義約束,也可以基於多列定義複合約束.注意, 複合約束只能在表級中定義.create table emp01(    lastname varchar2(25),    firstname varchar2(25),    code varchar2(25),    constraint emp01_pf     primary  key(lastname,firstname));一般情況下,一個表都應該有一個主鍵,建立主鍵的原則“最少性,穩定性”。外來鍵約束外來鍵是構建於一個表的兩個欄位或者兩個表的兩個欄位之間的關係外來鍵確保了相關的兩個欄位的兩個關係:子(從)表外來鍵列的值必須在主表參照列值的範圍內,或者為空(也可以加非空約束,強制不允許為空)。當主表的記錄被子表參照時,主表記錄不允許被刪除。外來鍵參照的只能是主表主鍵或者唯一鍵,保證子表記錄可以準確定位到被參照的記錄。格式FOREIGN KEY (外來鍵列名)REFERENCES 主表(參照列)ON DELETE CASCADE:當父表中的行被刪除的時候,同時刪除在子表中依靠的行ON DELETE SET NULL:將依靠的外來鍵值轉換為空值