麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 數據庫 > SQL Server > 正文

SQL Server 創建約束圖解(唯一 主鍵)

2024-08-31 01:04:01
字體:
來源:轉載
供稿:網友

SQLServer中有五種約束,Primary Key約束、Foreign Key約束、Unique約束、Default約束和Check約束,今天使用SQL Server2008來演示下這幾種約束的創建和使用的方法。

什么是主鍵?

在數據庫中,常常不只是一個表,這些表之間也不是相互獨立的。不同的表之間需要建立一種關系,才能將它們的數據相互溝通。而在這個溝通過程中,就需要表中有一個字段作為標志,不同的記錄對應的字段取值不能相同,也不能是空白的。通過這個字段中不同的值可以區別各條記錄。就像我們區別不同的人,每個人都有名字,但它卻不能作為主鍵,因為人名很容易出現重復,而身份證號是每個人都不同的,所以可以根據它來區別不同的人。數據庫的表中作為主鍵的字段就要像人的身份證號一樣,必須是每個記錄的值都不同,這樣才能根據主鍵的值來確定不同的記錄。

如果為表指定了 PRIMARY KEY 約束,則 SQL Server 2005 數據庫引擎 將通過為主鍵列創建唯一索引來強制數據的唯一性。當在查詢中使用主鍵時,此索引還可用來對數據進行快速訪問。因此,所選的主鍵必須遵守創建唯一索引的規則。

創建主鍵時,數據庫引擎 會自動創建唯一的索引來強制實施 PRIMARY KEY 約束的唯一性要求。如果表中不存在聚集索引或未顯式指定非聚集索引,則將創建唯一的聚集索引以強制實施 PRIMARY KEY 約束。

唯一性約束
1) 唯一性約束所在的列允許空值,但是主鍵約束所在的列不允許空值。
(2) 可以把唯一性約束放在一個或者多個列上,這些列或列的組合必須有唯一的只。但是,唯一性約束所在的列并不是表的主鍵列。
(3) 唯一性約束強制在指定的列上創建一個唯一性索引。在默認情況下,創建唯一性的非聚簇索引,但是,也可以指定所創建的索引是聚簇索引。

主鍵:
1) 用于標識某行而且與之相關.
2) 是不可能(或很難)更新.
3) 不應該允許空(NULL).

唯一域/字段:
1) 用于作為訪問某行的可選手段.
2) 只要唯一就可以更新.
3) 可以為空(NULLs).

注意唯一和主鍵的區別,它們都是創建一個唯一的索引,一個表格僅含有一個主鍵約束列,但是,它有可能在其他列中含有許多的唯一約束。

1、Primary Key約束

    在表中常有一列或多列的組合,其值能唯一標識表中的每一行。

    這樣的一列或多列成為表的主鍵(PrimaryKey)。一個表只能有一個主鍵,而且主鍵約束中的列不能為空值。只有主鍵列才能被作為其他表的外鍵所創建。

   創建主鍵約束可以右鍵單擊表,選擇設計。

SQLServer,創建約束,主鍵

 

   選中要創建主鍵的列,然后單擊上面的小鑰匙。

SQLServer,創建約束,主鍵

 

   也可以右鍵需要創建主鍵的列,然后單擊小鑰匙。

SQLServer,創建約束,主鍵

 

2、Foreign Key約束

    外鍵約束是用來加強兩個表(主表和從表)的一列或多列數據之間的連接的。創建外鍵約束的順序是先定義主表的主鍵,然后定義從表的外鍵。也就是說只有主表的主鍵才能被從表用來作為外鍵使用,被約束的從表中的列可以不是主鍵,主表限制了從表更新和插入的操作。

   右鍵單擊需要設置外鍵的列(此時的表是作為從表在外鍵中出現),選擇關系。

SQLServer,創建約束,主鍵

   接下來點擊添加-->表和列規范。

SQLServer,創建約束,主鍵

   在主鍵表中選擇主表和主表的主鍵列。

SQLServer,創建約束,主鍵

 

   設置完后保存即可。

 3、Unique約束

    唯一約束確保表中的一列數據沒有相同的值。與主鍵約束類似,唯一約束也強制唯一性,但唯一約束用于非主鍵的一列或者多列的組合,且一個表可以定義多個唯一約束。

   右鍵單擊要設置的列選擇索引/鍵。

SQLServer,創建約束,主鍵

   然后單擊添加按鈕。

SQLServer,創建約束,主鍵

   選擇需要設置的列,可以是一列也可以是多列的組合。

SQLServer,創建約束,主鍵

   關閉并保存設置。

4、Default約束

    若在表中定義了默認值約束,用戶在插入新的數據行時,如果該行沒有指定數據,那么系統將默認值賦給該列,如果我們不設置默認值,系統默認為NULL。

  以學生信息表為例,在表設計器中,為性別sex列填寫默認值男。

SQLServer,創建約束,主鍵

5、Check約束

    Check約束通過邏輯表達式來判斷數據的有效性,用來限制輸入一列或多列的值的范圍。在列中更新數據時,所要輸入的內容必須滿足Check約束的條件,否則將無法正確輸入。

   以學生信息表中的sex為例,我們要限制sex列的值只能為男或女。

SQLServer,創建約束,主鍵

SQLServer,創建約束,主鍵

SQLServer,創建約束,主鍵

SQLServer,創建約束,主鍵

   關閉并保存設計。

   致此,數據庫中的五種約束情況又復習了一遍,約束確保了數據庫中數據的完整性,但只有約束是遠遠不夠的。

 

注:相關教程知識閱讀請移步到MSSQL教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 午夜精品小视频 | 五月激情久久 | 久久精品视频亚洲 | 国产精品一区二区三区在线 | 在线免费日韩 | 一级做a爱片性色毛片 | 国产免费资源 | 精品久久一区二区三区 | 欧美视频一区二区 | 国产一区二区三区视频观看 | 欧美a视频在线观看 | 亚洲欧美日韩一区二区三区在线观看 | 欧美中文在线 | 一级毛片免费版 | 欧美激情精品久久久久久久久久 | 久久久一区二区三区四区 | 91精品国产99久久久久久 | 午夜视| 亚洲一区二区成人 | 久久性生活免费视频 | 亚洲最大中文字幕 | 亚洲第五色综合网 | 午夜色视频在线观看 | 美女很黄很黄免费的 | 87成人免费看片 | 青青国产在线视频 | 激情宗合网 | 欧美成人高清视频 | 九九热在线视频观看这里只有精品 | 日本成人在线免费 | 欧美成人激情在线 | 最新欧美精品一区二区三区 | 超级av在线 | 毛片在哪里看 | 国产精品一| 国产一级二级毛片 | 激情小说区| 国产一级www | 国产人成免费爽爽爽视频 | 成人区精品一区二区婷婷 | 黄网站在线播放视频免费观看 |