主键和唯一键的区别

主键和唯一键的区别

主键是表的一列,它唯一地标识该表中的每个元组(行)。 主键对表强制执行完整性约束。 一个表中只允许使用一个主键。 主键不接受任何重复值和 NULL 值。 表中的主键值很少更改,因此在很少发生更改的地方谨慎选择它。 一个表的主键可以被另一个表的外键引用。

为了更好地理解主键,将表命名为 Student 表,具有 Roll_numberNameBatchPhone_numberCitizen_ID 等属性。

主键和唯一键的区别

Roll_number 属性永远不能有相同的和 NULL 值,因为每个在大学注册的学生都可以有唯一的 Roll_number ,因此两个学生不能有相同的 Roll_number ,并且表中的每一行都用学生的 Roll_number 唯一标识。 因此,在这种情况下,可以将 Roll_number 属性作为主键。

唯一键约束还唯一标识关系或表中的单个元组。 与主键不同,一张表可以有多个唯一键。 唯一键约束对于列只能接受一个 NULL 值。 唯一约束也被另一个表的外键引用。 当有人想要对一个列和一组不是主键的列强制执行唯一约束时,可以使用它。

为了更好地理解唯一键,使用 Student 表具有 Roll_numberNameBatchPhone_numberCitizen_ID 属性。

Roll_number 属性已经分配了主键,并且 Citizen_ID 可以具有唯一约束,其中 Citizen_ID 列中的每个条目都应该是唯一的,因为一个国家的每个公民都必须具有他或她的唯一标识号,例如 Aadhaar 号。 但是,如果学生在这种情况下迁移到另一个国家,那么将没有任何 Citizen_ID ,并且该条目可能具有 NULL 值,因为唯一约束中只允许一个 NULL

主键和唯一键之间的主要区别:

  • 主键不接受 NULL 值,而唯一键可以接受 NULL 值。
  • 一张表只能有一个主键,而一张表可以有多个唯一键。
  • 定义主键时自动创建聚集索引,而唯一键生成非聚集索引。

主键和唯一键的区别

参数 PRIMARY KEY UNIQUE KEY
基本 用作表中每一行的唯一标识符。 唯一确定不是主键的行。
NULL值 不能接受 NULL 值。 可以接受 NULL 值。
定义的键数 只有一个主键 多个唯一键
索引 创建聚集索引 创建非聚集索引
自动递增 主键支持自动递增值。 唯一键不支持自动递增值。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程