首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >SQL -唯一键、主键和外键

SQL -唯一键、主键和外键
EN

Stack Overflow用户
提问于 2015-04-25 09:27:26
回答 3查看 69.1K关注 0票数 12

唯一键、主键外键SQL概念上有什么区别?

他们之间有何不同?

EN

回答 3

Stack Overflow用户

发布于 2015-04-25 09:27:26

主键和唯一键约束都是相似的,它为定义它们的列提供了唯一的强制唯一性。

主键

  • 主键不能有空值。
  • 每个表只能有一个主键。
  • 默认情况下,主键是聚集索引,数据库表中的数据是按聚集索引顺序物理组织的。
  • 主键可以与另一个表的外键关联。
  • 借助“自动增量”字段,可以自动生成ID。主键支持自动增值。

唯一键

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

外键

  • 外键是表中的字段,它是另一个表中的主键。
  • 外键可以接受多个空值。
  • 外键不自动创建索引,聚集或非群集.您可以手动创建外键索引。
  • 一张桌子上可以有一个以上的外键。
  • 使用聚集索引支持外键有实际的好处,但是每个表只能得到一个。有什么好处?如果要选择父记录加上所有子记录,则需要相邻的子记录。这很容易使用聚集索引来完成。
  • 拥有空外键通常是个坏主意。在下面的示例中,dbo.child中的记录将被称为“孤立记录”。在做这件事之前要好好想一想。
票数 27
EN

Stack Overflow用户

发布于 2016-12-30 12:47:04

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

主键

1)不能插入空值

2)一个表有一个主键

惟一键1)插入空值2)一个表有多个唯一键,3)也可以作为候选键引用

维护两个表和多个表之间的关系注意:在没有任何约束的情况下,您可以在多个表中获取数据,但不能有效地获取数据。

票数 1
EN

Stack Overflow用户

发布于 2017-07-20 06:35:17

关于唯一键的一点注记

主键-外键关系中的父表通常称为主键表,但在父表中PK不是强制的。父表中的唯一键/约束就足够了。由于PK总是唯一的,所以它经常用作另一个表中的外键。看这个,所以post

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29863388

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档