主键和唯一键的区别

主键是表的一列,它唯一地标识该表中的每个元组(行)。 主键对表强制执行完整性约束。 一个表中只允许使用一个主键。 主键不接受任何重复值和 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 KEYUNIQUE KEY
基本用作表中每一行的唯一标识符。唯一确定不是主键的行。
NULL值不能接受 NULL 值。可以接受 NULL 值。
定义的键数只有一个主键多个唯一键
索引创建聚集索引创建非聚集索引
自动递增主键支持自动递增值。唯一键不支持自动递增值。

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/264241.html

(0)
上一篇 2022年6月7日
下一篇 2022年6月7日

相关推荐

发表回复

登录后才能评论