一篇文章總結 關系型數據庫中的key
https://www.sqlrelease.com/sql-server-tutorial/types-of-keys
Keys are fields in a table which participate in below activities in RDBMS systems:
- 表與表中數據之間的依賴關系由key建立
- 標識數據的唯一性
- 使表的約束有效果, 進而能夠保證數據都是有效的
- 有可能會提升數據庫表的查詢效率
key | des |
---|---|
Primary key | 主鍵是選擇在表中唯一標識每個記錄表的候選鍵。主鍵不允許列空值和整個列保持唯一值。在SQL Server,默認情況下主鍵產生上的堆表聚簇索引(其不具有聚集的索引被稱為堆表的表)。我們也可以通過顯式定義的索引類型定義一個表上的非聚集主鍵。一個表只能有一個主鍵,主鍵可以在SQL Server中使用下面的SQL語句來定義:CRETE TABLE語句(在創建表的時間) - 在這種情況下,系統定義主鍵的名稱; ALTER TABLE語句(使用主鍵約束) - 用戶定義的主鍵的名稱 |
Unique Key | 唯一鍵類似於主鍵,不允許列重復的值。它具有低於在主鍵的比較中的差:它允許在列一個空值。默認情況下,它創建於堆表非聚集索引。 |
Alternate(secondary) Key | 備用鍵是一個候選鍵,當前未被選定為表中的主鍵。 |
foreign key | 在兩個表之間的關系,其中一個表的主鍵被稱為在另一個表的外鍵。外鍵中可以有重復的值,也可以保持空值,如果列定義為接受空值。 |
Candidate Key | 候選鍵是可被選擇作為表中的主鍵的表的鍵。一個表可以有多個候選鍵,其中有一個可被選擇作為主鍵。 |
Super Key | Super鍵是一組在該表中的所有列在功能上依賴列。這是一組列的唯一標識表的每一行。 Super鍵可持有未嚴格要求,以唯一標識每一行一些其他列。主鍵和候選鍵是最小的超鍵,或者你可以說超級鍵的子集。 |
Composite Key | 復合鍵(也稱為化合物鍵或級聯密鑰)是一組標識表的每一行唯一地兩個或更多個列組成。復合鍵的個別列可能不能夠唯一標識記錄。它可以是主鍵或候選鍵也。 |
讓我們通過一張圖來大致梳理一下各個key的位置和關系: