資料庫中主鍵和外部索引鍵的區別
在關係資料庫中,鍵是維護兩個表之間關係或唯一標識表中資料的最重要元素。主鍵用於唯一標識資料,因此兩行不能具有相同的主鍵。它不能為 null。另一方面,外部索引鍵用於維護兩個表之間的關係。
一個表的 primary key 充當另一個表中的外部索引鍵。表中的外部索引鍵有助於強制實施引用完整性約束。閱讀本教程以瞭解更多關於主鍵和外部索引鍵的資訊以及它們之間有何不同。
什麼是主鍵?
一個主鍵是表中的一列(或一組列),它唯一標識表中的每一行。它不能包含 null 值,並且在表中的所有行中都必須是唯一的。一個表中只允許一個主鍵。
主鍵基本上是“唯一”和“非空”約束的組合。因此,它不能是 NULL 值。關於主鍵需要注意的另一點是,其值不能從父表中刪除。
什麼是外部索引鍵?
一個外部索引鍵是表中的一列(或一組列),它引用另一個表中的主鍵。它用於在兩個表之間建立連結,並用於在資料庫中強制實施引用完整性。外部索引鍵基本上是表中類似於其他表主鍵的欄位/列。
與主鍵不同,一個表可以有多個外部索引鍵。此外,外部索引鍵可以在關係資料庫中包含重複值和 null 值。外部索引鍵的值可以從子表中刪除。
資料庫中主鍵和外部索引鍵的區別
下表突出顯示了主鍵和外部索引鍵之間所有重要的差異 -
鍵 |
主鍵 |
外部索引鍵 |
|---|---|---|
基本 |
它用於唯一標識表中的資料。 |
它用於維護表之間的關係。 |
空值 |
它不能為 NULL。 |
它可以接受 NULL 值。 |
重複 |
兩行或多行不能具有相同的主鍵。 |
它可以為外部索引鍵屬性攜帶重複值。 |
索引 |
主鍵具有聚集索引。 |
預設情況下,它不是聚集索引。 |
表 |
主鍵約束可以在臨時表上定義。 |
它不能在臨時表上定義。 |
結論
主鍵和外部索引鍵是資料庫設計中的重要概念,因為它們有助於建立表之間的關係並幫助確保資料完整性。主鍵唯一標識表中的一行,而外部索引鍵用於透過引用相關表的主鍵將兩個錶鏈接在一起。您應該注意的最重要的區別是,主鍵不能具有 NULL 值,而外部索引鍵可以接受 NULL 值。
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP