[sql server] 一篇文章总结 关系型数据库中的key
一篇文章总结 关系型数据库中的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的位置和关系: