位置: 编程技术 - 正文

初探SQL语句复合主键与联合主键(sql 复合语句)

编辑:rootadmin

推荐整理分享初探SQL语句复合主键与联合主键(sql 复合语句),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:pl/sql中的复合变量,sql复合条件查询,sql语句复合查询,sql语句复用,sql复合主键的写法,复合sql怎么写,sql复合主键语句,复合sql怎么写,内容如对您有帮助,希望把文章链接给更多的朋友!

一、复合主键

所谓的复合主键 就是指你表的主键含有一个以上的字段组成,不使用无业务含义的自增id作为主键。比如

上面的name和id字段组合起来就是你test表的复合主键 ,它的出现是因为你的name字段可能会出现重名,所以要加上ID字段这样就可以保证你记录的唯一性 ,一般情况下,主键的字段长度和字段数目要越少越好 。

这里就会有一个疑惑&#; 主键是唯一的索引,那么为何一个表可以创建多个主键呢?

其实“主键是唯一的索引”这话有点歧义的。举个例子,我们在表中创建了一个ID字段,自动增长,并设为主键,这个是没有问题的,因为“主键是唯一的索引”,ID自动增长保证了唯一性,所以可以。

此时,我们再创建一个字段name,类型为varchar,也设置为主键,你会发现,在表的多行中你是可以填写相同的name值的,这岂不是有违“主键是唯一的索引”这句话么?

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

为什么自增长ID已经可以作为唯一标识的主键,为啥还需要复合主键呢。因为,并不是所有的表都要有ID这个字段,比如,我们建一个学生表,没有唯一能标识学生的ID,怎么办呢,学生的名字、年龄、班级都可能重复,无法使用单个字段来唯一标识,这时,我们可以将多个字段设置为主键,形成复合主键,这多个字段联合标识唯一性,其中,某几个主键字段值出现重复是没有问题的,只要不是有多条记录的所有主键值完全一样,就不算重复。

初探SQL语句复合主键与联合主键(sql 复合语句)

二、联合主键

联合主键顾名思义就是多个主键联合形成一个主键组合(主键原则上是唯一的,别被唯一值所困扰。)

联合主键的意义:用2个字段(或者多个字段,后面具体都是用2个字段组合)来确定一条记录,说明,这2个字段都不是唯一的,2个字段可以分别重复,这么设置的好处,可以很直观的看到某个重复字段的记录条数。

一个简单的例子

主键A跟主键B组成联合主键

主键A跟主键B的数据可以完全相同,联合就在于主键A跟主键B形成的联合主键是唯一的。

下例主键A数据是1,主键B数据也是1,联合主键其实是,这个是唯一值,绝对不充许再出现这个唯一值。(这就是多对多关系)

主键A数据 主键B数据

1      1 2      2 3      3

主键A与主键B的联合主键值最多也就是

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

标签: sql 复合语句

本文链接地址:https://www.jiuchutong.com/biancheng/348350.html 转载请保留说明!

上一篇:SQL执行步骤的具体分析(最全的sql执行顺序)

下一篇:MySQL两种临时表的用法详解(mysql 临时表)

  • 增值税一般纳税人税率
  • 小规模纳税人需要异地预缴吗
  • 合理避税与偷税漏税的行为区别
  • 劳务报酬申报个税流程
  • 税务季度申报如何网上申报填写
  • 财产租赁合同金额含税吗
  • 年终奖分摊到每个月
  • 一个营业执照可以开几家淘宝店
  • 财务报表中负债率怎么算
  • 企业职工保险如何转灵活就业
  • 进出口代理公司哪家好
  • 二手房怎么避免一房多卖
  • 房贷利息抵个税细则 两套房
  • 结存材料应分摊什么
  • 平销返利如何开红字发票
  • 代扣代缴个人所得税手续费是否缴纳增值税
  • 外贸企业留抵税额过大
  • 租房发票的税由谁承担
  • 建筑企业使用民工的税务风险你清楚吗?
  • 移动网络的费用有哪些
  • 个人买卖二手房增值税
  • 视同销售的计税依据
  • 资金池利息收入计入投资收益吗
  • 房产公司增值税怎么交
  • 精英主板设置u盘启动
  • 冲减其他应收款摘要怎么写
  • 深度学习和日常代码中遇到的报错汇总及解决方案,持续更新中。。。。
  • 资本公积金为什么不能用于弥补亏损
  • php析构方法怎么用
  • 公司日常流水账
  • 股东分红应该在哪个科目
  • point network
  • 员工辞退补偿金需要交个税吗
  • 律师费开票税费谁承担
  • Sqlite 操作类代码
  • 费用分割单使用范围
  • 实收资本可以用于偿还借款
  • 下列项目的进项税额可以从销售税额中抵扣的是
  • 拯救你的方法
  • mysql怎么修改
  • 哪些发票是成品发票
  • 金税四期介绍 王军
  • 社保的账务处理分录
  • 暂时进境货物如何申报
  • 进项税转出怎样做账务处理
  • 单身租房子
  • 减免税款属于政府补助利得吗
  • 在分公司签的合同能转到总公司吗?
  • mysql中mysqldump
  • 一个简单的微笑说说
  • Windows 10 与 MySQL 5.5 安装使用及免安装使用详细教程(图文)
  • sqlserver连接异常
  • 配置是什么意思
  • 读取mysql binlog
  • mysql5.7.27安装
  • 开机无法进入桌面,无法调用资源管理器
  • win10自带邮件怎么登录foxmail账号
  • 如何设置自动登录密码
  • window10与CentOS双系统安装详细教程
  • 大白菜u盘启动按f几
  • thinkpadx230i5
  • win10创建家庭
  • win8怎么玩帝国时代2
  • win8如何关闭杀毒软件
  • win8安装盘
  • windows7怎么设置右键菜单
  • wind安装
  • css兼容性写法
  • unity getint
  • 智能图片制作
  • javascript函数中的参数,也可以称之为下面哪项内容?
  • 安卓开发例子
  • javascript构造函数可继承父类的构造函数
  • jquery获取文件大小
  • 手机截取电脑屏幕
  • javascript生成随机整数
  • python嵌套列表怎么遍历
  • 定额发票网上查询
  • 吉林省耕地面积有多少万亩
  • 福建地税网上办事大厅
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设