SQLServer 中有五種約束, Primary Key 約束、 Foreign Key 約束、 Unique 約束、 Default 約束和 Check 約束,今天使用SQL Server2008 來演示下這幾種約束的創建和使用的方法。
1、Primary Key 約束
在表中常有一列或多列的組合,其值能唯一標識表中的每一行。
這樣的一列或多列成為表的主鍵(PrimaryKey)。一個表只能有一個主鍵,而且主鍵約束中的列不能為空值。只有主鍵列才能被作為其他表的外鍵所創建。
創建主鍵約束可以右鍵單擊表,選擇設計 。
選中要創建主鍵的列,然后單擊上面的小鑰匙。
也可以右鍵需要創建主鍵的列,然后單擊小鑰匙。
2、Foreign Key 約束
外鍵約束是用來加強兩個表(主表和從表)的一列或多列數據之間的連接的。創建外鍵約束的順序是先定義主表的主鍵,然后定義從表的外鍵。也就是說只有主表的主鍵才能被從表用來作為外鍵使用,被約束的從表中的列可以不是主鍵,主表限制了從表更新和插入的操作。
右鍵單擊需要設置外鍵的列(此時的表是作為從表在外鍵中出現),選擇關系。
接下來點擊添加 --> 表和列規范。
在主鍵表中選擇主表和主表的主鍵列。
設置完后保存即可。
3、Unique 約束
唯一約束確保表中的一列數據沒有相同的值。與主鍵約束類似,唯一約束也強制唯一性,但唯一約束用於非主鍵的一列或者多列的組合,且一個表可以定義多個唯一約束。
右鍵單擊要設置的列選擇索引 / 鍵。
然后單擊添加按鈕。
選擇需要設置的列,可以是一列也可以是多列的組合。
關閉並保存設置。
4、Default 約束
若在表中定義了默認值約束,用戶在插入新的數據行時,如果該行沒有指定數據,那么系統將默認值賦給該列,如果我們不設置默認值,系統默認為 NULL 。
以學生信息表為例,在表設計器中,為性別 sex 列填寫默認值男。
5、Check 約束
Check 約束通過邏輯表達式來判斷數據的有效性,用來限制輸入一列或多列的值的范圍。在列中更新數據時,所要輸入的內容必須滿足 Check 約束的條件,否則將無法正確輸入。
以學生信息表中的 sex 為例,我們要限制 sex 列的值只能為男或女。
關閉並保存設計。