,,Mysql exists用法小结

,,Mysql exists用法小结

这篇文章主要介绍了关系型数据库存在用法的的相关资料,帮助大家更好的理解和使用MySQL,感兴趣的朋友可以了解下

简介

存在用于检查子查询是否至少会返回一行数据,该子查询实际上并不返回任何数据,而是返回值真实的或错误。

存在指定一个子查询,检测行的存在。语法:存在子查询。参数子查询是一个受限的挑选语句(不允许有计算子句和到…里面关键字)。结果类型为布尔型,如果子查询包含行,则返回没错。

示例

一张活动配置主表活动_主要通过行为代码来唯一标明一场活动,活动举办地点适配表活动_区域,通过行为代码与主表进行关联,活动奖品表活动_sku,通过行为代码与主表进行关联。

活动主表

创建表"活动_主要"(

` id ' bigint(20)NOT NULL AUTO _ INCREMENT,

` act _ code ' varchar(255)不为空注释'活动代码,

` act _ name ' varchar(255)不为空注释'活动名称,

主键(` id `),

唯一键` uniq_code` (`act_code `)

)ENGINE=InnoDB AUTO _ INCREMENT=1 DEFAULT CHARSET=utf8mb 4 COLLATE=utf8mb 4 _ 0900 _ ai _ ci COMMENT='活动主表'

活动在哪些网站举办的适配表

创建表`活动区域`(

` id ' bigint(20)NOT NULL AUTO _ INCREMENT,

` act _ code ' varchar(255)不为空注释'活动代码,

` area ' varchar(255)不为空注释'参与此活动的网站,

主键(` id `)

)ENGINE=InnoDB AUTO _ INCREMENT=1 DEFAULT CHARSET=utf8mb 4 COLLATE=utf8mb 4 _ 0900 _ ai _ ci COMMENT='活动适配的网站列表'

活动奖品表

创建表` activity_sku `(

` id ' bigint(20)NOT NULL AUTO _ INCREMENT,

` act _ code ' varchar(255)不为空注释'活动代码,

“SKU”varchar(255)不为空注释'活动赠送的商品,

主键(` id `)

)ENGINE=InnoDB AUTO _ INCREMENT=1 DEFAULT CHARSET=utf8mb 4 COLLATE=utf8mb 4 _ 0900 _ ai _ ci COMMENT='活动赠品表'

比较使用存在和在…里的查询

这个例子比较了两个语义类似的查询。第一个查询使用在…里而第二个查询使用存在。注意两个查询返回相同的信息。

# 查询体重秤

select * from activity _ main where act _ code in(

从活动_sku中选择act_code,其中sku='翎野君的体脂称'

)

# 查询体重秤

select * from activity _ main a where exists(

从活动_sku b中选择1,其中' a.act_code=b.act_code,b.sku='翎野君的体脂称'

)

# 模糊查询贝科英国婴儿推车

select * from activity _ main where act _ code in(

从活动_sku中选择act_code,其中库存单位类似于" %B-BEKO% "

)

# 模糊查询贝科英国婴儿推车

select * from activity _ main a where exists(

从活动_sku b中选择1,其中a.act_code=b.act_code,B . SKU喜欢“% B-BEKO %”

)

# 查询在博客园举办的活动

select * from activity _ main where act _ code in(

select act _ code from activity _ area where area='博客园'

)

# 查询在博客园举办的活动

select * from activity _ main a where exists(

从活动_领域b中选择1,其中' a.act_code=b.act_code,b.area='博客园'

)

# 在博客园举办活动且活动奖品为华为手机的活动信息

select * from activity _ main where act _ code in(

select act _ code from activity _ area where area='博客园和行为代码在(

从活动_sku中选择act_code,其中sku='华为P30Pro '

))

# 内层的存在语句只在当前在哪里语句中生效,最终是否返回,要根据最外层的存在判断,如果是真(真)就返回到结果集,为假(假)丢弃。

select * from activity _ main a where exists(

从活动_领域b中选择1,其中' a.act_code=b.act_code,b.area='博客园并且存在

(从活动_sku c中选择1,其中a.act_code=c.act_code,c.sku='华为p30专业版’)

)

以上就是关系型数据库存在用法小结的详细内容,更多关于关系型数据库存在用法的资料请关注我们其它相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • 使用php连接mysql数据库,php连接数据库的方法
  • 使用php连接mysql数据库,php连接数据库的方法,一文详解PHP连接MySQL数据库的三种方式
  • pymysql菜鸟教程,pymysql 使用
  • pymysql菜鸟教程,pymysql 使用,pymysql模块使用简介与示例
  • mysql锁实现,mysql锁算法
  • mysql锁实现,mysql锁算法,MySQL锁机制与用法分析
  • mysql连接报错10061,mysql连接错误10060
  • mysql连接报错10061,mysql连接错误10060,MYSQL无法连接 提示10055错误的解决方法
  • mysql连接报10060错误,mysql连接报错10055
  • mysql连接报10060错误,mysql连接报错10055,MySQL连接异常报10061错误问题解决
  • mysql辅助索引和主键索引,mysql 主键 外键 索引
  • mysql辅助索引和主键索引,mysql 主键 外键 索引,MySQL索引之主键索引
  • MySQL语句大全,mysql常见语句总结
  • MySQL语句大全,mysql常见语句总结,MySQL语句整理及汇总介绍
  • mysql触发器的使用方法实验报告,mysql中触发器的使用
  • 留言与评论(共有 条评论)
       
    验证码: