Rumah >pangkalan data >tutorial mysql >DBMS中主键和外键之间的区别

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

青灯夜游
青灯夜游asal
2019-01-24 16:31:004842semak imbas

键是DBMS的关键部分,它们用于标识和建立模式中表之间的关系。下面本篇文章就来带大家认识一下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中文网相关教程栏目!!!

Atas ialah kandungan terperinci DBMS中主键和外键之间的区别. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn