原創地址:http://www.cnblogs.com/jfzhu/archive/2012/11/23/2785269.html
轉載請注明出處
SQL Server中有五種約束類型,分別是 PRIMARY KEY約束、FOREIGN KEY約束、UNIQUE約束、DEFAULT約束、和CHECK約束。查看或者創建約束都要使用到 Microsoft SQL Server Managment Studio。
1. PRIMARY KEY約束
在表中常有一列或多列的組合,其值能唯一標識表中的每一行。這樣的一列或多列成為表的主鍵(Primary Key)。一個表只能有一個主鍵,而且主鍵約束中的列不能為空值。
查看PRIMARY KEY約束可以在object explorer中依次展開Databases –> 選擇你要查看的數據庫(在我的例子中是testdatabase) –> Tables –> 你要查看的表(在我的例子中是company)-> Columns
如上圖所示,Primary Key 有一把金色的小鑰匙。companyid 即為company表的primary key。
創建PRIMARY KEY約束可以右鍵點擊表,然后選擇Design,打開表設計器
選中column,點擊上面的金色小鑰匙,來創建Primary Key。
也可以右鍵點擊column,然后選擇Set Primary Key。
2. FOREIGN KEY約束
外鍵(Foreign Key)是用於建立和加強兩個表(主表與從表)的一列或多列數據之間的連接的。創建約束的順序是先定義主表的主鍵,再對從表定義外鍵約束。
查看FOREIGN KEY約束,展開Columns,可以看到灰色的小鑰匙為Foreign Key;展開Keys,可以看到Foreign Key約束的名字為FK_contact_company。
在表設計器中,也可以點擊上面的Relationships按鈕,這樣就可以查看到所有的Foreign Key約束
上面的例子可以看到contact 表的companyid為外鍵,company 表的companyid為主鍵。
下面來演示一下如何創建的該Foreign Key約束。
同樣是點擊完Relationships按鈕之后,在彈出的對話框中選擇Add
然后點擊下面的紅色圓圈內的按鈕:
按下圖中那樣設置主表、主鍵和從表、外鍵
然后點擊 OK,不要忘記保存你的設計。
3. UNIQUE約束
UNIQUE約束用於確保表中的兩個數據行在非主鍵中沒有相同的列值。與PRIMARY KEY約束類似,UNIQUE約束也強制唯一性,但UNIQUE約束用於非主鍵的一列或多列組合,且一個表可以定義多個UNIQUE約束,另外UNIQUE約束可以用於定義多列組合。
還以company table為例,假設我們要約束company name為唯一的,點擊Manage Indexes and Keys
然后點擊Add來添加Unique約束
選擇column為companyname, Is Unique為Yes。
關閉並保存你的設計,這樣一個Unique約束就創建好了。
4. DEFAULT約束
若在表中某列定義了DEFAULT約束,用戶在插入新的數據行時,如果該列沒有指定數據,那么系統將默認值賦給該列,當然該默認值也可以是空值(NULL)。
以contact表為例,在表設計器中,為性別(sex)列填寫屬性默認值 (‘M’)。
5. CHECK約束
CHECK約束用於限制輸入一列或多列的值的范圍,通過邏輯表達式來判斷數據的有效性。一個列的輸入內容必須滿足CHECK約束的條件,否則數據無法正常輸入。
還以contact表為例, 我們要限制sex列的值只能為 ´M´ 或者 ´F´。在表設計器中點擊Manage Check Constraints
點擊Add添加新的constraint
點擊紅圈內的按鈕,填寫表達式。我們例子中用的表達式是 SEX='M' OR SEX='F'
關閉並保存設計。向contact表中插入一行數據,如果sex列的值不為´M´ 或 ´F´, 插入就會報錯。