? ? ? ? ? ?
前言
數據庫的完整性是指數據庫正確性和相容性,是防止合法用戶使用數據庫時向數據庫加入不符合語義的數據,從而保證了數據庫中的數據是正確的,避免非法的更新操作。
1、主鍵約束
1.1 完整性約束條件
完整性約束條件作用的對象有關系、元組、列三種。
? ? ? ? ? ? ?
?
1.2 完整性控制
主要有三個方面的功能:定義功能、檢測功能、處理功能。檢查是否違背完整性約束的時機有立即執行約束、延時執行約束。最重要的完整性約束條件是實體完整性、參照完整性。
1.3 實體完整性 Primary Key
在關系中只能有一個主鍵。聲明主鍵調入方法:
1、將 Primary Key 保留字加在屬性類型之后。
比如? Sno char(10) Primary Key
2、在屬性列表中引入一個新元素,該元素包含保留字 Primary Key 和圓括號括起來的形成該鍵的屬性或屬性組列表。
比如:
Primary Key (Sno)
1.4 外鍵(Foreign Key) 約束
語法格式:Foreign Key (屬性名) references 表名 (屬性名)[ON DELETE][CASCADE][SET NULL]
說明:
Foreign Key 定義那些列為外碼 ;
references 指明外碼屬于哪個表的主碼 ;
ON DELETE CASCADE 指明刪除記錄同時刪除關系中的記錄;
SET NULL 表示置為空值方式。
比如:Foreign Key Sno references Student (Sno)
1.5 屬性值上的約束
主要包括:
not null 不為空
unique 唯一約束
check 設定屬性值需要滿足的條件 。
比如:age Number(3) check (age>0 and age <180)
1.6 全局約束
全局約束是值一些比較復雜的完整性約束,這些約束涉及多個屬性間的聯系或多個不同關系間的聯系。有基于元組的檢查子句、斷言。
1、基于元組的檢查子句
主要是針對單個關系的元組加以約束。方法是在關系定義中的任何地方加上關鍵字Check和約束條件。
比如年齡在1到170之間,Check(age>=1 and age<=170)
2、基于斷言的語法格式
格式:Create Assertion <斷言名>Check)(<條件>)
例子:
Create Assertion aa Check( Not exists select * from Student where name'小明')
IT技術分享社區
個人博客網站:https://programmerblog.xyz
文章推薦程序員效率:畫流程圖常用的工具程序員效率:整理常用的在線筆記軟件遠程辦公:常用的遠程協助軟件,你都知道嗎?51單片機程序下載、ISP及串口基礎知識硬件:斷路器、接觸器、繼電器基礎知識
?