外键和主键之间的键区别在于,外键是一列或一组列,它们引用另一个表的主键或候选键,而主键是一列或一组列,可用于唯一标识表中的行。
可以用来标识或访问数据库中一行或一组行的列或一组列称为键。关系数据库中的主键是表中唯一标识表中一行的列的组合。关系数据库中的外键是表中与另一个表的主键相匹配的字段。外键用于交叉引用表。
目录
1. 概述和主要区别
2. 什么是外键
3. 什么是主键
4. 外键并列对照表
5. 摘要
什么是外键(foreign key)?
外键是两个表之间的引用约束。它标识一个表(称为引用表)中的一列或一组列,该表引用另一个表(称为被引用表)中的一组列。引用表中的外键或列必须是被引用表中的主键或候选键(可以用作主键的键)。此外,外键允许跨多个表链接数据。因此,外键不能包含未出现在它所引用的表中的值。然后外键提供的引用有助于将多个表中的信息链接起来,这对于规范化数据库来说是必不可少的。引用表中的多行可以引用被引用表中的一行。
在ansisql标准中,外键约束定义外键。此外,还可以在创建表本身时定义外键。一个表可以有多个外键,它们可以引用不同的表。
什么是主键(primary key)?
主键是唯一定义关系数据库表中一行的列或列的组合。一个表最多只能有一个主键。主键强制隐式NOT NULL约束。因此,具有主键的列不能包含空值。主键可以是表中保证唯一的常规属性,如社会保险号,也可以是数据库管理系统生成的唯一值,例如Microsoft SQL Server中的全局唯一标识符(GUID)。
此外,ansisql标准中的主键约束定义了主键。也可以在创建表时定义主键。除此之外,SQL允许主键由一个或多个列组成,并且包含在主键中的每个列都被隐式定义为NOT NULL。但是一些数据库管理系统要求主键列显式地不为空。
外键(foreign key)和主键(primary key)的区别
外键与主键 | |
外键是关系数据库表中的一列或一组列,它提供两个表中数据之间的关联。 | 主键是一个特殊的关系数据库表列或允许唯一标识所有表记录的多个列的组合。 |
无效的 | |
外键接受空值。 | 主键值不能为空。 |
钥匙数量 | |
表可以有多个外键。 | 表只能有一个主键。 |
复制 | |
元组对于外键属性可以有重复的值。 | 关系中的两个元组不能具有主键属性的重复值。 |
总结 - 外键(foreign key) vs. 主键(primary key)
外键和主键的区别在于,外键是一列或一组列,它们引用另一个表的主键或候选键,而主键是一列或一组列,可用于唯一标识表中的行。
引用
1.“外键。”维基百科,维基媒体基金会,2018年5月12日。可在此处查阅2.“主密钥”。维基百科,维基媒体基金会,2018年4月3日。此处提供
2.“主键”,维基百科,维基媒体基金会,2018年4月3日。