百分百源码网-让建站变得如此简单! 登录 注册 签到领金币!

主页 | 如何升级VIP | TAG标签

当前位置: 主页>网站教程>数据库> 结合主键和复合主键的区别
分享文章到:

结合主键和复合主键的区别

发布时间:09/01 来源:未知 浏览: 关键词:
在数据库中主键必需是独一的,那么什么又是结合主键和复合主键呢?二者之间又有着什么区别呢? 一、复合主键

所谓的复合主键 就是指你表的主键含有一个以上的字段组成,不运用无业务含义的自增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等,而结合主键要同时是两个表的主题组合起来的。这是和复合主键最大的区别!

相理解更多相干题目请拜访百分百源码网:mysql视频教程

以上就是结合主键和复合主键的区另外细致内容,更多请关注 百分百源码网 其它相干文章!

打赏

打赏

取消

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

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

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

百分百源码网 建议打赏1~10元,土豪随意,感谢您的阅读!

共有150人阅读,期待你的评论!发表评论
昵称: 网址: 验证码: 点击我更换图片
最新评论

本文标签

广告赞助

能出一分力是一分吧!

订阅获得更多模板

本文标签

广告赞助

订阅获得更多模板