SQL - 唯一键,主键和外键

Jai*_*y K 8 sql rdbms foreign-keys primary-key unique-key

Unique Key,Primary KeyForeign Key在概念方面有什么区别SQL

他们是如何彼此不同的?

Jai*_*y K 23

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

首要的关键

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

独特的关键

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

外键

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