簡體   English   中英

SQL - 唯一鍵,主鍵和外鍵

[英]SQL - Unique Key, Primary Key & Foreign Key

SQL概念方面, Unique Key,Primary KeyForeign Key有什么區別?

他們是如何彼此不同的?

PRIMARY Key和UNIQUE Key約束都是相似的,它提供了定義它們的列的唯一強制唯一性。

首要的關鍵

  • 主鍵不能具有NULL值。
  • 每個表只能有一個主鍵。
  • 默認情況下,主鍵是聚簇索引,數據庫表中的數據按聚簇索引的順序進行物理組織。
  • 主鍵可以與另一個表作為外鍵相關聯。
  • 我們可以在Auto Increment字段的幫助下自動生成ID。 主鍵支持自動增量值。

獨特的關鍵

  • 唯一約束可能具有NULL值。
  • 每個表都可以有多個唯一約束。
  • 默認情況下,唯一鍵是唯一的非聚集索引。
  • 唯一約束不能與另一個表作為外鍵相關聯。
  • 唯一約束不支持自動增量值。

外鍵

  • 外鍵是表中的一個字段,它是另一個表中的主鍵。
  • 外鍵可以接受多個空值。
  • 外鍵不會自動創建索引,群集或非群集。 您可以在外鍵上手動創建索引。
  • 我們可以在表中有多個外鍵。
  • 使用聚簇索引支持外鍵有一些實際的優點,但每個表只能獲得一個。 有什么好處? 如果要選擇父級加上所有子級記錄,則希望子級記錄彼此相鄰。 使用聚簇索引很容易實現。
  • 擁有空外鍵通常是個壞主意。 在下面的示例中,[dbo]。[child]中的記錄將被稱為“孤兒記錄”。 在做這件事之前要長時間地思考。

注意:我們使用約束來強制執行數據完整性

首要的關鍵
1)不能插入空值
2)一個表有一個主鍵

唯一鍵1)在時間插入一個空值2)一個表有多個唯一鍵3)你也可以作為候選鍵

外鍵1)維護兩個表之間的關系也是多個注意:沒有任何約束你可以在多個表中獲取數據,但是你無法獲得數據

關於唯一鍵的說明

主鍵 - 外鍵關系中的父表通常稱為主鍵表,但父表中的PK不是必需的。 父表中的唯一鍵/約束就足夠了。 由於PK始終是唯一的,因此它通常在另一個表中用作外鍵。 看到這個SO 帖子

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM