DBMS中主键和外键之间的区别是什么
这篇文章主要介绍了DBMS中主键和外键之间的区别是什么,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。
DBMS中的主键
主键可以唯一地定义关系中的元组。它可以是关系中的单个属性,也可以是关系中的一组属性。主键属性的值不应更改或很少更改。因为它是主体,所以意味着标识数据库中的任何记录;主键的任何属性值的更改都会造成混乱。【视频教程推荐:MySQL教程】
任何关系只能有一个主键。主键默认为cluster-indexed,这意味着表中的所有元组都根据主键属性值进行排序。可以在临时表上定义主键约束。在执行查询期间创建的中间表称为临时表。
DBMS中的外键
外键是引用另一个关系的主键的键;当其属性中的关系R1具有其他关系R2的主键时,则该属性被称为关系R1的外键。包含外键的关系R1称为引用关系,因为它引用关系R2的主键,而关系R2称为引用关系。
与主键不同,外键可以接受NULL值,因为它没有在关系中明确标识记录的任务;同样,外键也接受重复值。
关系可以有多个外键,因为它可以具有不同的属性,这些属性是不同关系中的主键。无法在临时表上定义外键约束,外键也不是集群索引属性。
主键和外键之间的主要区别
1、本质上不同
主键是选择的候选键,它唯一地定义关系中的元组; 表中的外键是指其他表的主键。
2、NULL值
主键值永远不能为NULL;外键接受NULL值。
3、重复值
主键关系中没有两个元组携带主键属性的重复值。外键中元组可以为外键属性携带重复值。
4、范围
关系只能有一个主键。关系中可以有多个外键。
5、临时表
主键可以在临时表上定义主键约束。外键无法在临时表上定义外键约束。
6、聚集索引
默认情况下,主键是聚簇索引的。外键不能自动聚集索引,它必须手动完成。
7、插入
在主键中,我们可以向主键属性插入一个值,即使引用外键在其列中没有该值也是如此。
在外键中,如果引用的主键列中不存在该值,则无法将值插入外键。
8、删除
在删除主键值之前,请确保该引用表的引用外键列中仍不存在该值。我们可以从外键列中删除值而不必担心,该值是否存在于引用关系的引用主键列中。
感谢你能够认真阅读完这篇文章,希望小编分享DBMS中主键和外键之间的区别是什么内容对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,遇到问题就找亿速云,详细的解决方法等着你来学习!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341