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中主键和外键之间的区另外细致内容,更多请关注 百分百源码网 其它相干文章!