【什么是主鍵與外鍵】在數(shù)據(jù)庫(kù)設(shè)計(jì)中,主鍵和外鍵是兩個(gè)非常重要的概念。它們用于確保數(shù)據(jù)的完整性、一致性以及表之間的關(guān)系正確建立。下面將對(duì)這兩個(gè)概念進(jìn)行總結(jié),并通過(guò)表格形式進(jìn)行對(duì)比說(shuō)明。
一、主鍵(Primary Key)
主鍵是用于唯一標(biāo)識(shí)數(shù)據(jù)庫(kù)表中每一行記錄的字段或字段組合。它的主要作用是保證表中每條記錄的唯一性,防止重復(fù)數(shù)據(jù)的出現(xiàn)。主鍵可以是一個(gè)字段,也可以是多個(gè)字段的組合(復(fù)合主鍵)。主鍵不允許為空(NULL),并且每個(gè)表只能有一個(gè)主鍵。
特點(diǎn):
- 唯一性:每個(gè)主鍵值必須唯一。
- 非空性:主鍵字段不能為 NULL。
- 一個(gè)表只能有一個(gè)主鍵。
二、外鍵(Foreign Key)
外鍵是用來(lái)建立和維護(hù)兩個(gè)表之間關(guān)聯(lián)關(guān)系的字段。它通常引用另一個(gè)表的主鍵,用來(lái)確保數(shù)據(jù)的一致性和完整性。外鍵可以為空,也可以有重復(fù)值,但其值必須存在于被引用表的主鍵中,或者為 NULL。
特點(diǎn):
- 關(guān)聯(lián)性:外鍵用于連接兩個(gè)表。
- 參照完整性:外鍵的值必須存在于被引用表的主鍵中,或?yàn)?NULL。
- 一個(gè)表可以有多個(gè)外鍵。
三、主鍵與外鍵的區(qū)別總結(jié)
| 特性 | 主鍵(Primary Key) | 外鍵(Foreign Key) |
| 作用 | 唯一標(biāo)識(shí)表中的每一行記錄 | 建立和維護(hù)表之間的關(guān)系 |
| 唯一性 | 必須唯一 | 不一定唯一 |
| 空值 | 不允許為空(NULL) | 允許為空(NULL) |
| 數(shù)量 | 每個(gè)表只能有一個(gè)主鍵 | 一個(gè)表可以有多個(gè)外鍵 |
| 引用關(guān)系 | 不引用其他表 | 通常引用其他表的主鍵 |
| 數(shù)據(jù)完整性 | 確保記錄的唯一性 | 確保參照完整性 |
四、實(shí)際應(yīng)用舉例
假設(shè)有一個(gè)“學(xué)生表”和一個(gè)“成績(jī)表”,其中:
- 學(xué)生表 包含字段:學(xué)號(hào)(主鍵)、姓名、性別等;
- 成績(jī)表 包含字段:學(xué)號(hào)(外鍵)、課程名、分?jǐn)?shù)等。
在這種情況下,成績(jī)表中的“學(xué)號(hào)”作為外鍵,引用了學(xué)生表中的“學(xué)號(hào)”主鍵,從而實(shí)現(xiàn)了兩個(gè)表之間的關(guān)聯(lián)。
通過(guò)合理使用主鍵和外鍵,可以有效提高數(shù)據(jù)庫(kù)的結(jié)構(gòu)化程度和數(shù)據(jù)管理效率,避免數(shù)據(jù)冗余和不一致的問(wèn)題。


