溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

DBMS中主鍵和外鍵之間的區(qū)別是什么

發(fā)布時(shí)間:2020-09-16 14:11:26 來源:億速云 閱讀:183 作者:小新 欄目:MySQL數(shù)據(jù)庫

這篇文章主要介紹了DBMS中主鍵和外鍵之間的區(qū)別是什么,具有一定借鑒價(jià)值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。

DBMS中的主鍵

主鍵可以唯一地定義關(guān)系中的元組。它可以是關(guān)系中的單個(gè)屬性,也可以是關(guān)系中的一組屬性。主鍵屬性的值不應(yīng)更改或很少更改。因?yàn)樗侵黧w,所以意味著標(biāo)識(shí)數(shù)據(jù)庫中的任何記錄;主鍵的任何屬性值的更改都會(huì)造成混亂。【視頻教程推薦:MySQL教程】

任何關(guān)系只能有一個(gè)主鍵。主鍵默認(rèn)為cluster-indexed,這意味著表中的所有元組都根據(jù)主鍵屬性值進(jìn)行排序。可以在臨時(shí)表上定義主鍵約束。在執(zhí)行查詢期間創(chuàng)建的中間表稱為臨時(shí)表。

DBMS中的外鍵

外鍵是引用另一個(gè)關(guān)系的主鍵的鍵;當(dāng)其屬性中的關(guān)系R1具有其他關(guān)系R2的主鍵時(shí),則該屬性被稱為關(guān)系R1的外鍵。包含外鍵的關(guān)系R1稱為引用關(guān)系,因?yàn)樗藐P(guān)系R2的主鍵,而關(guān)系R2稱為引用關(guān)系。

與主鍵不同,外鍵可以接受NULL值,因?yàn)樗鼪]有在關(guān)系中明確標(biāo)識(shí)記錄的任務(wù);同樣,外鍵也接受重復(fù)值。

關(guān)系可以有多個(gè)外鍵,因?yàn)樗梢跃哂胁煌膶傩裕@些屬性是不同關(guān)系中的主鍵。無法在臨時(shí)表上定義外鍵約束,外鍵也不是集群索引屬性。

主鍵和外鍵之間的主要區(qū)別

1、本質(zhì)上不同

主鍵是選擇的候選鍵,它唯一地定義關(guān)系中的元組; 表中的外鍵是指其他表的主鍵。

2、NULL值

主鍵值永遠(yuǎn)不能為NULL;外鍵接受NULL值。

3、重復(fù)值

主鍵關(guān)系中沒有兩個(gè)元組攜帶主鍵屬性的重復(fù)值。外鍵中元組可以為外鍵屬性攜帶重復(fù)值。

4、范圍

關(guān)系只能有一個(gè)主鍵。關(guān)系中可以有多個(gè)外鍵。

5、臨時(shí)表

主鍵可以在臨時(shí)表上定義主鍵約束。外鍵無法在臨時(shí)表上定義外鍵約束。

6、聚集索引

默認(rèn)情況下,主鍵是聚簇索引的。外鍵不能自動(dòng)聚集索引,它必須手動(dòng)完成。

7、插入

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

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

8、刪除

在刪除主鍵值之前,請確保該引用表的引用外鍵列中仍不存在該值。我們可以從外鍵列中刪除值而不必?fù)?dān)心,該值是否存在于引用關(guān)系的引用主鍵列中。

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享DBMS中主鍵和外鍵之間的區(qū)別是什么內(nèi)容對大家有幫助,同時(shí)也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,遇到問題就找億速云,詳細(xì)的解決方法等著你來學(xué)習(xí)!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI