主键(primary key)和带示例的外键(foreign key with examples)的区别

主键是指定用于唯一标识每个表记录的特殊关系数据库表列(或列的组合)。它是唯一的标识符,如驾驶执照号码、电话号码(包括区号)或车辆识别号(VIN)。关系数据库必须始终只有一个primarykey。主键通常显示为关系数据库表中的列。...

什么是主键(a primary key)?

主键是指定用于唯一标识每个表记录的特殊关系数据库表列(或列的组合)。它是唯一的标识符,如驾驶执照号码、电话号码(包括区号)或车辆识别号(VIN)。关系数据库必须始终只有一个primarykey。主键通常显示为关系数据库表中的列。

主键的主要功能包括:

  • 它必须包含每行数据的唯一值。
  • 它不能包含空值。
  • 每行必须有一个主键值。

主键可能使用基础数据模型中已经存在的一个或多个字段,或者可以创建特定的额外字段作为主键。

实例

例如,在商业银行中,数据库必须保存商业银行存储的所有数据。其中两个数据库表包括customer_MASTER,用于存储基本和静态客户数据(姓名、出生日期、地址、社会保险号等)和ACCOUNTS_masters,用于存储各种银行账户数据(账户创建日期、账户类型、提款限额或相应的账户信息等)。

为了唯一地识别客户,选择一列或列的组合以保证两个客户永远不会具有相同的唯一值。因此,某些列立即被删除,例如姓氏和出生日期。

一个好的主键候选是指定用于保存社会安全号码的列。然而,一些账户持有人可能没有社会保障号码,因此本栏的候选人资格被取消。

下一个合乎逻辑的选项是使用列的组合,例如在电子邮件地址中添加姓氏和出生日期,这样会导致主键冗长而繁琐。

最好的选择是在名为CUSTOMER_ID的新列中创建一个单独的主键。然后,每次添加客户时,数据库自动生成一个唯一编号,以确保唯一标识。

关系数据库中主键的选择通常取决于管理员的偏好。当用户的特定需求发生变化时,可以更改给定数据库的主键。例如,在一个应用程序中,可以根据他们的驾照号码唯一地识别城镇中的人,但在其他情况下,根据他们的电话号码识别他们可能更方便。

您需要知道的是主键

  • 主键约束是唯一标识关系数据库管理表中每一行的列。
  • 它用于唯一地标识数据库表中的每个记录。
  • 主键是聚集索引,DBMS表中的数据按照聚集索引的顺序进行物理组织。
  • 主键从不接受空值。
  • 表中可以有一个主键。
  • 无法从父表中删除主键的值。
  • 一个表只能有一个主键。
  • 可以在临时表上定义主键约束。
  • 主键的两行不能有任何相同的值。
  • 它不能在表中创建父子关系。
  • Primary是唯一的键属性,它不能存储关系中的重复值。
  • 在主键下,通过确保外键引用表中不存在值,可以从引用表中删除该值。

什么是外键(a foreign key)?

外键是关系数据库表中的一列或一组列,提供两个表中数据之间的链接。它作为表之间的交叉引用,因为它引用另一个表的主键,从而在它们之间建立链接。

关系数据库系统中的大多数表都遵循外键概念。在复杂的数据库和数据仓库中,adomain中的数据必须跨多个表添加,从而保持它们之间的关系。参照完整性的概念源于国外的键理论。

虽然主键可以独立存在,但外键必须始终引用某个地方的主键。包含主键的原始表是父表(也称为引用表)。此键可以由其他表(称为“子”表)中的多个外键引用。

对于充当外键的任何列,链接表中应存在相应的值。插入数据和从外键列中删除数据时必须特别小心,因为粗心的删除或插入可能会破坏两个表之间的关系。

简单地说,foreignkey是一组引用候选键的属性。例如,一个名为TEAM的表可能有一个属性MEMBER_NAME,它是一个外键,引用PERSON表中的一个索引键PERSON_NAME。由于MEMBER_NAME是一个foreignkey,任何作为团队成员名称存在的值也必须作为PERSON表中的人名存在;换句话说,团队的每个成员都是一个人。

您需要知道的关于外键的信息

  • 外键是关系数据库表中的一列或一组列,它们在两个表中的数据之间提供链接。
  • 它用于将两个表链接在一起。
  • 外键无法自动创建聚集或非聚集索引。
  • 外键可以接受多个空值。
  • 一个表中可以有多个外键。
  • 可以从子表中删除外键值的值。
  • 一个表可以有多个外键。
  • 不能在本地或全局临时表上定义外键约束。
  • 外键可以包含重复值。
  • 它可以在表中创建父子关系。
  • 外键列中可以存储重复值。
  • 在外键下,可以删除值而不会出现任何故障,因为值是否仍然存在于主键引用表中并不重要。

主键(primary key)和表格式外键(foreign key in tabular form)的区别

比较基础主键外键
描述主键约束是唯一标识关系数据库管理表中每一行的列。 外键是关系数据库表中的一列或一组列,它们在两个表中的数据之间提供链接。
作用它用于唯一地标识数据库表中的每个记录。 它用于将两个表链接在一起。
索引主键是聚集索引,DBMS表中的数据按照聚集索引的顺序进行物理组织。 外键无法自动创建聚集或非聚集索引。
空值主键从不接受空值。 外键可以接受多个空值。
自然界表中可以有一个主键。 一个表中可以有多个外键。
价值去除无法从父表中删除主键的值。 可以从子表中删除外键值的值。
桌子一个表只能有一个主键。 一个表可以有多个外键。
释义可以在临时表上定义主键约束。 不能在本地或全局临时表上定义外键约束。
重复值主键的两行不能有任何相同的值。 外键可以包含重复值。
亲子关系它不能在表中创建父子关系。 它可以在表中创建父子关系。
重复值Primary是唯一的键属性,它不能存储关系中的重复值。 外键列中可以存储重复值。
删除在主键下,通过确保外键引用表中不存在值,可以从引用表中删除该值。 在外键下,可以删除值而不会出现任何故障,因为值是否仍然存在于主键引用表中并不重要。

  • 发表于 2022-09-09 06:40
  • 阅读 ( 54 )
  • 分类:IT

你可能感兴趣的文章

外键(foreign key)和主键(primary key)的区别

外键和主键之间的键区别在于,外键是一列或一组列,它们引用另一个表的主键或候选键,而主键是一列或一组列,可用于唯一标识表中的行。 可以用来标识或访问数据库中一行或一组行的列或一组列称为键。关系数据库中...

  • 发布于 2020-10-26 12:19
  • 阅读 ( 2073 )

主键(primary key)和候选关键字(candidate key)的区别

主键与候选键 虽然主键是从候选键中选择出来的,但是主键与其他候选键之间存在一些差异,本文将对此进行详细讨论。数据库设计是维护和存储数据时最重要的活动之一。在这个设计过程中,必须创建具有许多关系的不同...

  • 发布于 2020-10-29 02:12
  • 阅读 ( 1300 )

mysql数据库模式编写入门指南

在开发一个软件项目时,最重要的、基本的和内在的方面之一是一个结构合理的数据库模式。这相当于建造一所需要确保地基适当铺设的房子,否则建造优质房屋的机会大大减少。 ...

  • 发布于 2021-03-26 19:24
  • 阅读 ( 212 )

在面向microsoft的标准键盘上,应用程序键位于何处?

键盘快捷键可以极大地简化我们的工作流程,但是当你被告知使用一个键不清晰的快捷键时,你怎么办?你甚至不确定它是否在你的键盘上?今天的超级用户问答帖子有一个答案,可以帮助沮丧的读者找到他要找的钥匙。 今天...

  • 发布于 2021-04-10 23:30
  • 阅读 ( 194 )

尺寸表(dimension table)和事实表(fact table)的区别

...事实表主要由业务事实和外键组成,外键引用维度表中的主键。维度表主要由作为文本字段的描述性属性组成。 维度表为事实表的度量提供描述性或上下文信息。另一方面,事实表提供企业的度量,维度表包含一个代理键、自...

  • 发布于 2021-06-23 19:44
  • 阅读 ( 599 )

主键(primary key)和唯一键(unique key)的区别

主键和唯一键都是关系数据库中的唯一键,它们保证一列或一组列上的值的唯一性。主键约束中已存在预定义的唯一键约束。主键特别用于标识表中的每条记录,而唯一键则用于防止列中的重复条目(空条目除外)。但是,这...

  • 发布于 2021-06-25 02:25
  • 阅读 ( 455 )

主键(primary key)和唯一键(unique key)的区别

主键和唯一键的主要区别在于,一个表中只能有一个主键,不能有任何空值,因为它的功能是标识表中的每个记录,而一个表中可以有多个唯一键,因为它们的功能是确保一个列只具有唯一值,这样就不会有空值任何重复的数据...

  • 发布于 2021-06-30 17:00
  • 阅读 ( 337 )

关系(relation)和数据库管理系统中的关系(relationship in dbms)的区别

...系描述两个表或实体如何相互连接。这些表可以使用诸如主键和外键之类的约束相互关联。主键是表的主键。它有助于唯一地标识表中的每条记录。当一个表中的主键添加到另一个表中时,该主键将成为新表中的外键。 Figure 2: R...

  • 发布于 2021-07-01 01:38
  • 阅读 ( 934 )

主键(primary key)和候选密钥(candidate key)的区别

主键和候选键之间的主要区别在于,主键是表中有助于唯一标识每一行的最小属性集,而候选键是没有冗余属性的超级键。 通常,RDBMS的数据库由多个表组成。因此,键有助于建立表之间的关系。此外,一个键可以由一个属性或...

  • 发布于 2021-07-02 00:17
  • 阅读 ( 398 )

候选密钥(candidate key)和复合键(composite key)的区别

...的差异-密钥差异的比较 关键术语 候选密钥、复合密钥、主键、超级密钥 什么是候选密钥(candidate key)? 超级键是一组一个或多个属性,可以唯一地标识表中的记录。候选密钥是从超级密钥集中选择的密钥。此外,候选密钥不应...

  • 发布于 2021-07-02 00:17
  • 阅读 ( 2144 )
Dean猫猫
Dean猫猫

0 篇文章

相关推荐