男篮世界杯赔率初探SQL语句复合主键与联合主键
分类:计算机教程

一、复合主键

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

以上就是本文关于初探SQL语句复合主键与联合主键的全部内容,希望对大家有所帮助。感兴趣的朋友可以参阅:几个比较重要的MySQL变量、MySQL prepare原理详解、MySQL删除有外键约束的表数据方法介绍等,有什么问题可以随时留言,大家一起讨论,共同进步。

本文由美洲杯赔率发布于计算机教程,转载请注明出处:男篮世界杯赔率初探SQL语句复合主键与联合主键

上一篇:MySQL两种临时表的用法详解 下一篇:没有了
猜你喜欢
热门排行
精彩图文
  • MySQL两种临时表的用法详解
    MySQL两种临时表的用法详解
    外部临时表 通过CREATE TEMPORARY TABLE创建的临时表,这种临时表称为外部临时表。这种临时表只对当前用户可见,当前会话结束的时候,该临时表会自动关闭
  • MySQL笔记之数据类型详解
    MySQL笔记之数据类型详解
    数值型数据可以定义为unsigned,对整数而已可以改变其范围,对浮点数而言可以限定其不能为负数 char定长型,字节长度固定,最大长度为255字节,可以使用
  • MySQL 主主同步配置步骤
    MySQL 主主同步配置步骤
    MySQL 主主同步配置 服务器名IP系统MySQLodd.example.com192.168.1.116rhel-5.85.5.16even.example.com192.168.1.115rhel-5.85.5.16假设要同步的库是db_rocky ㈠ 创建同步用户 在 ODD上
  • MYSQL常见出错代码对照
    MYSQL常见出错代码对照
    常见错误!1016错误:文件无法打开,使用后台修复或者使用phpmyadmin进行修复。1044错误:数据库用户权限不足,请联系空间商解决1045错误:数据库服务器
  • 酷派巨亏75亿港元后复牌 5G与海外业务能否助其翻
    酷派巨亏75亿港元后复牌 5G与海外业务能否助其翻
    此外,酷派也一直在没有放弃在5G技术领域的探索。早在2013年,酷派便开始参与5G终端的研发及测试,直至2017年,酷派成立了人工智能科技中心。 半年后,