主鍵與唯一鍵詳解:概念、區別與面試要點
一、核心概念解析
1.1 主鍵(Primary Key)
主鍵是數據庫表中用于唯一標識每一行記錄的列或列組合,具有以下核心特性:
- 唯一性:主鍵值在整個表中必須唯一,不允許重復
- 非空性:主鍵列不允許包含NULL值
- 不可變性:主鍵值一旦確立,原則上不應修改
- 索引自動創建:大多數DBMS會自動為主鍵創建聚集索引(Clustered Index)
主鍵是關系型數據庫的基石,它建立了表之間的引用完整性基礎,是外鍵(Foreign Key)引用的目標。
1.2 唯一鍵(Unique Key)
唯一鍵是保證列或列組合值唯一的約束,主要特性包括:
- 唯一性:與主鍵相同,保證值的唯一性
- 可空性:允許包含NULL值(但多數DBMS中NULL值只能出現一次)
- 多約束支持:一個表可以定義多個唯一鍵
- 非聚集索引:通常自動創建非聚集索引(Non-clustered Index)
唯一鍵常用于業務上需要唯一性但不適合作為主鍵的場景,如用戶郵箱、身份證號等。
二、關鍵技術區別
2.1 基礎特性對比
特性 | 主鍵(Primary Key) | 唯一鍵(Unique Key) |
---|---|---|
NULL值允許 | 不允許 | 允許(有限制) |
數量限制 | 每表僅一個 | 每 |