位置: 编程技术 - 正文

初探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 临时表)

  • 怎么计算土地增值税的相关税金
  • 财务软件里怎么输大于等于号
  • 广告赞助支出可以抵税吗
  • 投资性房地产发生减值迹象均要计提减值准备
  • 什么情况下要交土地出让金
  • 简易征收适用哪条法律
  • 消防管理费用收取标准
  • 发票认证后怎么打明细
  • 打印社保缴费凭证需要什么证件
  • 简易计征开什么发票
  • 结转城建税和教育费附加
  • 单位和职工个人缴费基数如何确定的规定
  • 电子发票不小心删掉了怎么办
  • 委托收款被拒绝后要怎么做
  • 研发场地租赁计什么科目
  • 地税迁移期间能开发票吗
  • 一个公司两个纳税人识别号
  • 涉税软件技术维护费可以全额抵扣吗?
  • 销售货物运费的增值税率
  • 公路通行费抵扣进项税
  • 购入商品入库时发现实收物多余应收数计入什么科目
  • 收入负数怎么分录
  • 计算应纳税所得额时可以扣除的项目有
  • win10新建文件夹快捷键ctrl加什么
  • 购进材料是进项税还是销项税
  • 计提住房公积金
  • 凤尾蕨的养殖方法
  • 股票的交易费用多少
  • 业绩补偿是什么意思
  • 公允价值变动损益借贷方向增减
  • 现金流量科目怎么设置
  • wordpress怎么搜索域名
  • 建筑公司结算会计
  • 促销商品的方法
  • 税款滞纳金和罚款
  • 大雾笼罩的早晨
  • 小规模纳税人免税政策2023年
  • php示例代码大全
  • 新一代状态管理工具 -- Pinia 上手指南
  • framework在哪里打开
  • php对接公众号支付
  • 设备租赁经营部经营范围
  • 企业为其他企业担保有什么责任
  • 天猫一般纳税人如何纳税
  • 医疗保险合同印花税怎么交
  • 展览费应在在管理费里吗
  • mysql binlog详解
  • 技术转移转化是干什么的
  • 借款单属于外来单据吗
  • 工商营业执照年检网上怎么年检
  • 卸车费属于什么费用
  • sql server 递归
  • 专项应付款的核算
  • 成本法下被投资单位其他综合收益变动
  • 职工教育经费还有什么经费
  • 公司发放节日礼品
  • 按季度报税怎么处理
  • 支付给其他公司的借款属于什么现金流
  • 买断式与回购式
  • 丢失了发票怎么处理
  • 冲减坏账准备的金额怎么计算
  • 在Linux系统中安装MySQL
  • jucheck.exe
  • 电脑连不上网怎么解决
  • win7安装cad2010
  • win7隐藏文件怎么调出来
  • linux rsyslogd
  • shell 批量执行命令
  • cocos2dx运行原理
  • unity3d连接数据库
  • sequelize join
  • 教你用纸折一只会跳的小兔子,非常好玩,小朋友都喜欢
  • 使用驱动器u盘之前需要格式化
  • spring mvc jsp
  • jQuery通过ajax请求php遍历json数组到table中的代码(推荐)
  • android自定义ui
  • 贵州省电子税务局操作手册
  • 电子发票查询官方
  • 兰州税收优惠园在哪
  • 20万块手表交多少税
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设