DBMS中主键和外键之间的区别


本文摘自PHP中文网,作者青灯夜游,侵删。

键是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、删除

在删除主键值之前,请确保该引用表的引用外键列中仍不存在该值。我们可以从外键列中删除值而不必担心,该值是否存在于引用关系的引用主键列中。

以上就是本篇文章的全部内容,希望能对大家的学习有所帮助。更多精彩内容大家可以关注php中文网相关教程栏目!!!

以上就是DBMS中主键和外键之间的区别的详细内容,更多文章请关注木庄网络博客

相关阅读 >>

phpmyadmin新建数据表时怎么设置主键

目前常用的DBMS包括

mysql建表时怎么设置主键?

navicat怎么设置主键自增

sql数据库怎么设置主键?

mysql如何更改主键

oracle如何设置主键?

mysql怎么修改添加主键

mysql主键有什么用?

navicat premium中如何创建主键

更多相关阅读请进入《DBMS》频道 >>


数据库系统概念 第6版
书籍

数据库系统概念 第6版

机械工业出版社

本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...