键是关系数据库的基本元素,因为它们在一对表之间建立关系,并确保表中的每个记录都得到唯一标识。 键比建立关系更重要。 它们还有助于引用完整性,并且它们是表级完整性的主要组成部分。 表中存储着巨大的数据块,这些数据通常会扩展到成千上万的记录,而所有这些记录都是未排序和混乱的。 从这些众多的记录中获取特定数据有时可能很困难,有时甚至是不可能的。 在这里,我们将研究关系数据库模式的两个非常重要的键及其之间的区别:主键和外键。

主键和外键

什么是主键?

主键是一个特殊键,可唯一标识表中的每个记录。 在关系数据库中,在表的每一行中都有唯一的标识符非常重要,而主键正是您唯一地识别表中的元组所需要的。 元组表示关系数据库中的一组值属性。 主键可以引用关系数据库表中的一列或一组列,用于隐式标识表中的所有记录。 对于每个记录,主键必须是唯一的,因为它充当唯一的标识符,并且不应包含Null值。 每个数据库必须只有一个主键。

什么是外键?

外键是指数据库记录中的一个字段或字段的集合,它唯一地标识其他表中另一个数据库记录的关键字字段。简单来说,它在数据库的两个不同表中的记录之间建立链接。它可以是表中指向主键列的列,这意味着表中定义的外键是指其他某个表的主键。在关系数据库中,引用对于建立记录之间的链接至关重要,这对于排序数据库至关重要。外键在关系数据库规范化中起着重要作用,尤其是当表需要访问其他表时。

主键和外键的区别

  1. 主键与外键的基础
    主键是关系数据库中的特殊键,它充当每个记录的唯一标识符,这意味着它唯一地标识表中的每一行/记录,并且其值对于表的每一行都应该是唯一的。另一方面,外键是一个表中的字段,该字段将两个表链接在一起。它指的是唯一标识另一张表或同一张表的一行的一列或一组列。

  2. 主键与外键的关系
    主键唯一地标识关系数据库表中的记录,而外键引用表中的字段,该字段是另一个表的主键。一个主键必须是唯一的,并且在必须定义的表中仅允许一个主键,而在一个表中则允许多个外键。

  3. 主键与外键的值重复
    主键是UNIQUE和Not Null约束的组合,因此在关系数据库表的主键字段中不允许重复的值。不允许两行携带主键属性的重复值。与主键不同,外键可以包含重复值,关系数据库中的表可以包含多个外键。

  4. 主键与外键的NULL
    两者之间的主要区别之一是,与主键不同,外键也可以包含NULL值。关系数据库中的表只能具有一个不允许NULL值的主键。

  5. 主键与外键临时表
    可以在临时表及其变量上隐式定义主键约束,而不能在本地或全局临时表上强制使用外键约束。

  6. 删除主键与外键
    无法从父表中删除主键值,该主键值在子表中被称为外键。您必须先删除子表,然后再删除父表。相反,即使外键值引用到父表的主键,也可以将其从子表中删除。

总结

键在数据库模式的存在中起着至关重要的作用,以建立表之间以及表内的链接。 键建立关系并强制执行不同类型的完整性,尤其是表级和关系级完整性。 首先,他们确保表包含唯一记录,并且用于在表之间建立关系的字段必须包含匹配值。 主键和外键是关系数据库中使用的两种最重要和最常见的键类型。 主键是用于唯一标识表中记录的特殊键,而外键用于建立两个表之间的关系。 两者的结构相同,但在关系数据库架构中扮演不同的角色。

欢迎任何形式的转载,但请务必注明出处,尊重他人劳动成果。
转载请注明:文章转载自 有区别网 [http://www.vsdiffer.com]
本文标题:主键和外键
本文链接:https://www.vsdiffer.com/vs/primary-key-vs-foreign-key.html
免责声明:以上内容仅是站长个人看法、理解、学习笔记、总结和研究收藏。不保证其正确性,因使用而带来的风险与本站无关!如本网站内容冒犯了您的权益,请联系站长,邮箱: ,我们核实并会尽快处理。