学编程 ❀(๑╯◡╰๑)❀ 就上soxunxi.cn!这里有CMS,CSS,NET,PHP,Linux,HTML,JAVA,MySQL,Python等教程.
当前位置: MySQL > 团结主键和复合主键的区分【MySQL教程】,主键

一、复合主键

所谓的复合主键 就是指你表的主键含有一个以上的字段构成,不运用无营业寄义的自增id作为主键。

比方:

create table test 
( 
   name varchar(19), 
   id number, 
   value varchar(10), 
   primary key (name,id) 
)

上面的name和id字段组合起来就是你test表的复合主键 ,它的涌现是由于你的name字段能够会涌现重名,所以要加上ID字段如许就能够保证你纪录的唯一性 ,平常情况下,主键的字段长度和字段数量要越少越好 。

这里就会有一个迷惑? 主键是唯一的索引,那末为什么一个表能够建立多个主键呢?

实在“主键是唯一的索引”这话有点歧义的。举个例子,我们在表中建立了一个ID字段,自动增进,并设为主键,这个是没有题目的,由于“主键是唯一的索引”,ID自动增进保证了唯一性,所以能够。

此时,我们再建立一个字段name,范例为varchar,也设置为主键,你会发明,在表的多行中你是能够填写雷同的name值的,这岂不是有违“主键是唯一的索引”这句话么?

所以我才说“主键是唯一的索引”是有歧义的。应该是“当表中只需一个主键时,它是唯一的索引;当表中有多个主键时,称为复合主键,复合主键团结保证唯一索引”。

为什么自增进ID已能够作为唯一标识的主键,为啥还需要复合主键呢。由于,并非一切的表都要有ID这个字段,比方,我们建一个门生表,没有唯一能标识门生的ID,怎么办呢,门生的名字、岁数、班级都能够反复,没法运用单个字段来唯一标识,这时候,我们能够将多个字段设置为主键,构成复合主键,这多个字段团结标识唯一性,个中,某几个主键字段值涌现反复是没有题目的,只需不是有多条纪录的一切主键值完整一样,就不算反复。

二、团结主键

团结主键望文生义就是多个主键团结构成一个主键组合(主键原则上是唯一的,别被唯一值所搅扰。)

团结主键的意义:用2个字段(或许多个字段,背面细致都是用2个字段组合)来肯定一条纪录,申明,这2个字段都不是唯一的,2个字段能够离别反复,这么设置的优点,能够很直观的看到某个反复字段的纪录条数。

一个简朴的例子 :

主键A跟主键B构成团结主键

主键A跟主键B的数据能够完整雷同,团结就在于主键A跟主键B构成的团结主键是唯一的。
下例主键A数据是1,主键B数据也是1,团结主键实际上是11,这个11是唯一值,绝对不充许再涌现11这个唯一值。(这就是多对多关联)

主键A数据 主键B数据
1      1
2      2
3      3

主键A与主键B的团结主键值最多也就是

11
12
13
21
22
23
31
32
33

总结: 以我来看复合主键就是含有一个以上的字段构成,如ID+name,ID+phone等,而团结主键要同时是两个表的主题组合起来的。这是和复合主键最大的区分!

相相识更多相干题目请接见ki4网:mysql视频教程

以上就是团结主键和复合主键的区分的细致内容,更多请关注ki4网别的相干文章!

「梦想一旦被付诸行动,就会变得神圣,如果觉得我的文章对您有用,请帮助本站成长」

分享到:
赞(0) 打赏

支付宝扫一扫打赏

微信扫一扫打赏

标签:

上一篇:

下一篇:

相关推荐

0 条评论关于"团结主键和复合主键的区分【MySQL教程】,主键"

最新评论

    暂无留言哦~~

博客简介

看古风美女插画Cos小姐姐,素材合集图集打包下载:炫龙网,好看二次元插画应有尽有,唯美小姐姐等你来。

友情链接

他们同样是一群网虫,却不是每天泡在网上游走在淘宝和网游之间、刷着本来就快要透支的信用卡。他们或许没有踏出国门一步,但同学却不局限在一国一校,而是遍及全球!申请交换友链

服务热线:
 

 QQ在线交流

 旺旺在线