数据库中主键和外键的区别


关系数据库中,键是维护两个表之间关系或唯一标识表中数据的最重要元素。主键用于唯一标识数据,因此两行不能具有相同的主键。它不能为 null。另一方面,外键用于维护两个表之间的关系。

一个表的 primary key 充当另一个表中的外键。表中的外键有助于强制实施引用完整性约束。阅读本教程以了解更多关于主键和外键的信息以及它们之间有何不同。

什么是主键?

一个主键是表中的一列(或一组列),它唯一标识表中的每一行。它不能包含 null 值,并且在表中的所有行中都必须是唯一的。一个表中只允许一个主键。

主键基本上是“唯一”和“非空”约束的组合。因此,它不能是 NULL 值。关于主键需要注意的另一点是,其值不能从父表中删除。

什么是外键?

一个外键是表中的一列(或一组列),它引用另一个表中的主键。它用于在两个表之间建立链接,并用于在数据库中强制实施引用完整性。外键基本上是表中类似于其他表主键的字段/列。

与主键不同,一个表可以有多个外键。此外,外键可以在关系数据库中包含重复值和 null 值。外键的值可以从子表中删除。

数据库中主键和外键的区别

下表突出显示了主键和外键之间所有重要的差异 -

主键

外键

基本

它用于唯一标识表中的数据。

它用于维护表之间的关系。

空值

它不能为 NULL。

它可以接受 NULL 值。

重复

两行或多行不能具有相同的主键。

它可以为外键属性携带重复值。

索引

主键具有聚集索引。

默认情况下,它不是聚集索引。

主键约束可以在临时表上定义。

它不能在临时表上定义。

结论

主键和外键是数据库设计中的重要概念,因为它们有助于建立表之间的关系并帮助确保数据完整性。主键唯一标识表中的一行,而外键用于通过引用相关表的主键将两个表链接在一起。您应该注意的最重要的区别是,主键不能具有 NULL 值,而外键可以接受 NULL 值。

更新于: 2023年9月12日

30K+ 浏览量

开启您的 职业生涯

通过完成课程获得认证

开始学习
广告