外鍵和主鍵之間的鍵區別在於,外鍵是一列或一組列,它們引用另一個表的主鍵或候選鍵,而主鍵是一列或一組列,可用於唯一標識表中的行。
可以用來標識或訪問數據庫中一行或一組行的列或一組列稱為鍵。關係數據庫中的主鍵是表中唯一標識表中一行的列的組合。關係數據庫中的外鍵是表中與另一個表的主鍵相匹配的字段。外鍵用於交叉引用表。
目錄
1. 概述和主要區別
2. 什麼是外鍵
3. 什麼是主鍵
4. 外鍵並列對照表
5. 摘要
什麼是外鍵(foreign key)?
外鍵是兩個表之間的引用約束。它標識一個表(稱為引用表)中的一列或一組列,該表引用另一個表(稱為被引用表)中的一組列。引用表中的外鍵或列必須是被引用表中的主鍵或候選鍵(可以用作主鍵的鍵)。此外,外鍵允許跨多個錶鏈接數據。因此,外鍵不能包含未出現在它所引用的表中的值。然後外鍵提供的引用有助於將多個表中的信息鏈接起來,這對於規範化數據庫來說是必不可少的。引用表中的多行可以引用被引用表中的一行。
在ansisql標準中,外鍵約束定義外鍵。此外,還可以在創建表本身時定義外鍵。一個表可以有多個外鍵,它們可以引用不同的表。
什麼是主鍵(primary key)?
主鍵是唯一定義關係數據庫表中一行的列或列的組合。一個表最多隻能有一個主鍵。主鍵強制隱式NOT NULL約束。因此,具有主鍵的列不能包含空值。主鍵可以是表中保證唯一的常規屬性,如社會保險號,也可以是數據庫管理系統生成的唯一值,例如Microsoft SQL Server中的全局唯一標識符(GUID)。
此外,ansisql標準中的主鍵約束定義了主鍵。也可以在創建表時定義主鍵。除此之外,SQL允許主鍵由一個或多個列組成,並且包含在主鍵中的每個列都被隱式定義為NOT NULL。但是一些數據庫管理系統要求主鍵列顯式地不為空。
外鍵(foreign key)和主鍵(primary key)的區別
外鍵與主鍵 | |
外鍵是關係數據庫表中的一列或一組列,它提供兩個表中數據之間的關聯。 | 主鍵是一個特殊的關係數據庫表列或允許唯一標識所有表記錄的多個列的組合。 |
無效的 | |
外鍵接受空值。 | 主鍵值不能為空。 |
鑰匙數量 | |
表可以有多個外鍵。 | 表只能有一個主鍵。 |
複製 | |
元組對於外鍵屬性可以有重複的值。 | 關係中的兩個元組不能具有主鍵屬性的重複值。 |
總結 - 外鍵(foreign key) vs. 主鍵(primary key)
外鍵和主鍵的區別在於,外鍵是一列或一組列,它們引用另一個表的主鍵或候選鍵,而主鍵是一列或一組列,可用於唯一標識表中的行。
引用
1.“外鍵。”維基百科,維基媒體基金會,2018年5月12日。可在此處查閱2.“主密鑰”。維基百科,維基媒體基金會,2018年4月3日。此處提供
2.“主鍵”,維基百科,維基媒體基金會,2018年4月3日。