首頁  >  文章  >  資料庫  >  DBMS中主鍵與外鍵的區別

DBMS中主鍵與外鍵的區別

青灯夜游
青灯夜游原創
2019-01-24 16:31:004808瀏覽

鍵是DBMS的關鍵部分,它們用於標識和建立模式中表之間的關係。以下這篇文章就來帶大家認識DBMS的兩個非常重要的鍵,即主鍵和外鍵;介紹主鍵和外鍵之間的區別,希望對大家有所幫助。

DBMS中主鍵與外鍵的區別

DBMS中的主鍵

#主鍵可以唯一定義關係中的元組。它可以是關係中的單一屬性,也可以是關係中的一組屬性。主鍵屬性的值不應更改或很少更改。因為它是主體,所以意味著標識資料庫中的任何記錄;主鍵的任何屬性值的變更都會造成混亂。 【影片教學推薦:MySQL教學

任何關係只能有一個主鍵。主鍵預設為cluster-indexed,這表示表中的所有元組都根據主鍵屬性值進行排序。可以在臨時表上定義主鍵約束。在執行查詢期間建立的中間表稱為臨時表。

DBMS中的外鍵

外鍵是引用另一個關係的主鍵的鍵;當其屬性中的關係R1具有其他關係R2的主鍵時,則該屬性稱為關係R1的外鍵。包含外鍵的關係R1稱為引用關係,因為它引用關係R2的主鍵,而關係R2稱為引用關係。 

與主鍵不同,外鍵可以接受NULL值,因為它沒有在關係中明確標識記錄的任務;同樣,外鍵也接受重複值。

關係可以有多個外鍵,因為它可以有不同的屬性,這些屬性是不同關係中的主鍵。無法在暫存表上定義外鍵約束,外鍵也不是群集索引屬性。

主鍵與外鍵之間的主要差異

#1、本質上不同

#主鍵是選擇的候選鍵,它唯一定義關係中的元組; 表中的外鍵是指其他表的主鍵。

2、NULL值

主鍵值永遠不能為NULL;外鍵接受NULL值。

3、重複值

主鍵關係中沒有兩個元組攜帶主鍵屬性的重複值。外鍵中元組可以為外鍵屬性攜帶重複值。

4、範圍

關係只能有一個主鍵。關係中可以有多個外鍵。

5、暫存表

主鍵可以在暫存表上定義主鍵約束。外鍵無法在暫存表上定義外鍵約束。

6、聚集索引

預設情況下,主鍵是叢集索引的。外鍵不能自動聚集索引,它必須手動完成。

7、插入

在主鍵中,我們可以向主鍵屬性插入一個值,即使引用外鍵在其列中沒有該值也是如此。

在外鍵中,如果引用的主鍵列中不存在該值,則無法將值插入外鍵。

8、刪除

在刪除主鍵值之前,請確保該引用表的參考外鍵列中仍不存在該值。我們可以從外鍵列中刪除值而不必擔心,該值是否存在於引用關係的引用主鍵列中。

以上就是這篇文章的全部內容,希望能對大家的學習有所幫助。更多精彩內容大家可以追蹤php中文網相關教學欄位! ! !

以上是DBMS中主鍵與外鍵的區別的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn