SQL - 唯一键,主键和外键

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL - 唯一键,主键和外键相关的知识,希望对你有一定的参考价值。

关于SQL的概念,Unique Key,Primary Key和Foreign Key之间有什么区别?

他们是如何彼此不同的?

答案

PRIMARY Key和UNIQUE Key约束都是相似的,它提供了定义它们的列的唯一强制唯一性。

Primary Key

  • 主键不能具有NULL值。
  • 每个表只能有一个主键。
  • 默认情况下,主键是聚簇索引,数据库表中的数据按聚簇索引的顺序进行物理组织。
  • 主键可以与另一个表作为外键相关联。
  • 我们可以在Auto Increment字段的帮助下自动生成ID。主键支持自动增量值。

Unique Key

  • 唯一约束可能具有NULL值。
  • 每个表都可以有多个唯一约束。
  • 默认情况下,唯一键是唯一的非聚集索引。
  • 唯一约束不能与另一个表作为外键相关联。
  • 唯一约束不支持自动增量值。

Foreign Key

  • 外键是表中的一个字段,它是另一个表中的主键。
  • 外键可以接受多个空值。
  • 外键不会自动创建索引,群集或非群集。您可以在外键上手动创建索引。
  • 我们可以在表中有多个外键。
  • 使用聚簇索引支持外键有一些实际的优点,但每个表只能获得一个。有什么好处?如果要选择父级加上所有子级记录,则希望子级记录彼此相邻。使用聚簇索引很容易实现。
  • 拥有空外键通常是个坏主意。在下面的示例中,[dbo]。[child]中的记录将被称为“孤儿记录”。在做这件事之前要长时间地思考。
另一答案

注意:我们使用约束来强制执行数据完整性

首要的关键 1)不能插入空值 2)一个表有一个主键

唯一键1)在时间插入一个空值2)一个表有多个唯一键3)你也可以作为候选键

外键1)维护两个表之间的关系也是多个注意:没有任何约束你可以在多个表中获取数据,但是你无法获得数据

另一答案

关于唯一键的说明

主键 - 外键关系中的父表通常称为主键表,但父表中的PK不是必需的。父表中的唯一键/约束就足够了。由于PK始终是唯一的,因此它通常在另一个表中用作外键。看到这个SO post

以上是关于SQL - 唯一键,主键和外键的主要内容,如果未能解决你的问题,请参考以下文章

SQL - 唯一键,主键和外键

在MySQL中如何设置主键和外键

请问SQL server 中的主键和外键的作用

oracle中 主键和外键是啥意思?啥地方采用呢?

oracle中 主键和外键是啥意思?啥地方采用呢?

oracle中 主键和外键是啥意思?啥地方采用呢?