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 - 唯一键,主键和外键的主要内容,如果未能解决你的问题,请参考以下文章