数据库原理与应用(SQL Server)笔记 第六章 数据完整性
目錄
- 前言
- 一、實體完整性
- (一)主鍵約束(PRIMARY KEY約束)
- 1、創建表時創建主鍵約束
- 2、修改表時創建主鍵約束
- 3、刪除創建的主鍵約束
 
- (二)唯一性約束(UNIQUE約束)
- 1、創建表時創建唯一性約束
- 2、修改表時創建唯一性約束
- 3、刪除創建的唯一性約束
 
 
- 二、參照完整性
- (一)創建表時創建外鍵約束
- 1、創建表時定義列級外鍵約束
- 2、創建表時定義表級外鍵約束
 
- (二)修改表時創建外鍵約束
- (三)刪除表間的參照關系
 
- 三、域完整性
- (一)檢查約束(CHECK約束)
- 1、創建表時創建CHECK約束
- 2、修改表時創建CHECK約束
- 3、刪除創建的CHECK約束
 
- (二)默認約束(DEFAULT約束)
- 1、創建表時創建DEFAULT約束
- 2、修改表時創建DEFAULT約束
- 2、刪除創建DEFAULT約束
 
 
- 結語
前言
本次內容,我們主要掌握數據庫的數據完整性,將從三個方面主要介紹實體完整性、參照完整性和域完整性。
一、實體完整性
實體完整性是通過主鍵約束和唯一性約束等等來實現,即要求表中有一個主鍵,其值不能為空且能唯一標識相對應的記錄。例如員工表Employee,EmpNo列為主鍵,根據每個員工的EmpNo列可以唯一確定該員工的相應行記錄信息,通過EmpNo列建立主鍵約束實現員工表Employee的實體完整性。
 
(一)主鍵約束(PRIMARY KEY約束)
通過T-SQL語句進行以下操作:
1、創建表時創建主鍵約束
若一個表的主鍵由單列組成,則可定義為該列的列級約束或表級約束;若主鍵由兩個或兩個以上的列組成,則必須定義為表級約束。
 (1)定義列級約束
 格式如下:
(2)定義表級約束
 格式如下:
例1、創建員工表YGGZ_Employee,對員工號EmpNo列創建指定約束名稱的列級PRIMARY KEY約束。
 
 sql語句:
 
2、修改表時創建主鍵約束
修改表時創建主鍵約束使用ALTER TABLE語句中的ADD子句。
 格式如下:
3、刪除創建的主鍵約束
刪除表時創建主鍵約束使用ALTER TABLE語句中的DROP子句。
 格式如下:
例2、對創建的員工表YGGZ_Employee,刪去部門編號的主鍵,對員工工號列創建PRIMARY KEY約束,且約束名稱為PK_EmpNo。
 sql語句:
 --修改約束和刪除約束 USE YGGZ ALTER TABLE YGGZ_Employee ADD CONSTRAINT PK_EmpNo PRIMARY KEY (EmpNo) /*修改對員工工號列創建PRIMARY KEY約束*/ GO ALTER TABLE YGGZ_Employee DROP CONSTRAINT PK_EmpNo /*刪除所創建的PRIMARY KEY約束*/
 
(二)唯一性約束(UNIQUE約束)
唯一性約束指定一個或多個列的組合的值具有唯一性,防止在列中輸入重復的值,為表中的一列或者多列提供實體完整性。與主鍵約束的區別是唯一性約束可以指定的列為空值,而唯一性約束的列值不允許為空值,且一個表可以創建多個唯一性約束,但主鍵約束只能有一個。
 通過T-SQL語句進行以下操作:
1、創建表時創建唯一性約束
(1)定義列級唯一性約束
 語句格式:
(2)定義表級唯一性約束
 當應用于多列時要定義表級約束。
2、修改表時創建唯一性約束
修改表時創建唯一性約束使用ALTER TABLE語句中的ADD子句。
 格式如下:
3、刪除創建的唯一性約束
刪除所創建的唯一性約束使用ALTER TABLE語句中的DROP子句。
 格式如下:
二、參照完整性
外鍵用于與另外一個數據表的關聯,是確定另一個表的字段,例如有兩個表分別是基本表A和信息表B,其中C是表A的主鍵,而表B中也有C字段,則我們稱C就是B的外鍵,所以外鍵的作用就是來維護多個表之間數據的一致性。
FOREIGN KEY外鍵約束,通過外鍵約束可以定義表與表之間的關系,即使用主鍵約束和唯一性約束定義主表的主鍵和唯一鍵,使用外鍵約束定義從表的外鍵,即可實現兩個表之間的參照完整性。
(一)創建表時創建外鍵約束
1、創建表時定義列級外鍵約束
語句格式:
(CONSTRAINT 約束名稱) FOREIGN KEY REFERENCES <表的名稱>2、創建表時定義表級外鍵約束
語句格式:
(CONSTRAINT 約束名稱) FOREIGN KEY(列1,列2,列3...) REFERENCES <表的名稱> (ON DELETE (CASCADE/NO ACTION)) /*指定采用DELETE語句進行刪除操作,CASCADE表示當刪除主鍵表中某行時,外鍵表中相應行也刪除;NO ACTION表示當刪除主鍵表中某行時,刪除語句終止*/ (ON UPDATE (CASCADE/NO ACTION)) /*指定采用UPDATE語句進行更新操作,CASCADE表示當更新主鍵表中某行時,外鍵表中相應行也更新;NO ACTION表示當更新主鍵表中某行時,更新語句終止*/(二)修改表時創建外鍵約束
使用ALTER TABLE 的ADD子句修改表時創建外鍵約束。
 語句格式:
例、根據所給表結構,在數據庫Sales中創建員工表Employee_0。
 
 sql語句:
 
(三)刪除表間的參照關系
使用ALTER TABLE 的DROP子句刪除所創建的外鍵約束。
 語句格式:
例、對創建的員工表YGGZ_Employee,刪去對EmyNo列定義的FK_EmyNo外鍵約束。
 sql語句:
 ALTER TABLE YGGZ_Employee DROP CONSTRAINT FK_EmyNo
三、域完整性
(一)檢查約束(CHECK約束)
CHECK約束為輸入列或整個表中的值設置條件,從而限制輸入的值,從而保證數據完整性。以下通過使用T-SQL語句。
1、創建表時創建CHECK約束
格式如下:
(CONSTRAINT 約束名稱) CHECK (邏輯表達式) /*此處邏輯表達式為檢查約束的表達式*/例、創建員工表Employee_0,并對性別列設置CHECK約束,要求性別只能為男或者女生。
 只需在Sex列的后面加上CHECK((Sex='男') OR (Sex='女'))。
 sql語句:
 
2、修改表時創建CHECK約束
使用ALTER TABLE 的ADD子句在修改表時創建CHECK約束。
 語句格式:
例、在員工表Employee,修改年齡列設置CHECK約束,要求出生年齡在2001-01-01之前。
 ALTER TABLE Employee ADD CHECK(Birthday<2001-01-01)
3、刪除創建的CHECK約束
使用ALTER TABLE 的DROP子句刪除所創建的CHECK約束。
 語句格式:
(二)默認約束(DEFAULT約束)
默認約束,即當數據表某列未指定數據時,系統會自動設置默認值。默認值可以是表達式,可以是常量,也可以是NULL值。
1、創建表時創建DEFAULT約束
例1、對數據庫YGGZ,創建Employee_0表,其中對Sex列設置默認約束為男。
 
2、修改表時創建DEFAULT約束
使用ALTER TABLE 的ADD子句在修改表時創建DEFAULT約束。
 語句格式:
例2、對數據庫YGGZ中的Employee_0表上的Sex列創建DEFAULT約束為男。
 sql語句:
 ALTER TABLE Employee_0 ADD DEFAULT '男' FOR Sex
2、刪除創建DEFAULT約束
使用ALTER TABLE 的DROP子句刪除所創建DEFAULT約束。
 語句格式:
結語
以上就是本次數據庫原理與應用的全部內容,篇幅較長,感謝您的閱讀和支持,若有表述或代碼中有不當之處,望指出!您的指出和建議能給作者帶來很大的動力!!!
總結
以上是生活随笔為你收集整理的数据库原理与应用(SQL Server)笔记 第六章 数据完整性的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: QT Creator应用程序开发——01
- 下一篇: 数据库原理与应用(SQL Server)
