資料庫系統概論學習筆記----表級完整性約束與列級完整性約束
阿新 • • 發佈:2019-01-25
建表的同時通常還可以定義與該表有關的完整性約束條件,這些完整性約束條件被存入系統的資料字典中,當用戶操作表中資料時由DBMS自動檢查該操作是否違背這些完整性約束條件。
如果完整性約束條件涉及到該表的多個屬性列,則必須定義在表級上,否則既可以定義在列級也可以定義在表級。
表級完整性約束必須定義在列級完整性約束的後面。
例1 建立一個“學生”表Student,它由學號Sno、姓名Sname、性別Ssex、年齡Sage、所在系Sdept五個屬性組成。其中學號不能為空,值是唯一的,並且姓名取值也唯一。
CREATE TABLE Student(Sno CHAR(5)NOT NULL UNIQUE, /*列級完整性約束條件,Sno取值唯一,
Sname CHAR(20)UNIQUE, 不許取空值*/
Ssex CHAR(1),
Sage INT,
Sdept CHAR(15));
常用完整性約束:
主碼約束: PRIMARY KEY
唯一性約束:UNIQUE
非空值約束:NOT NULL
參照完整性約束