Mysql数据库核心技术(十六)-查询数据(十一)-子查询

[复制链接]
查看: 2003|回复: 31
发表于 2023-1-18 18:34:17 | 显示全部楼层 | 阅读模式
首先我们说一下何为子查询,它的意思是将一个查询语句的查询结果作为另一个查询语句的查询条件或表。
子查询语句一:
  1. select * from user where name in (select name from stu666);
复制代码
语句解释:
  1. 查询stu666表的name字段数据,再查询user表中name字段数据为以上查询结果的全部数据。
复制代码
执行结果如下:
Mysql数据库核心技术(十六)-查询数据(十一)-子查询

子查询语句二:
  1. select * from user where (sex,age) in (select sex,max(age) from stu666 group by sex);
复制代码
语句解释:
  1. 查询stu666表的sex字段数据和男女生的最大年龄,再用该结果集查询user表的全部数据。
复制代码


为了更直观的展示测试结果,我们先在stu666表中添加一个sex字段并填充数据。
  1. alter table stu666 add column sex char after age;
  2. update stu666 set sex='男' where pid=30;
  3. update stu666 set sex='女' where pid=31;
  4. update stu666 set sex='女' where pid=32;
  5. update stu666 set sex='男' where pid=33;
复制代码
首先我们看一下子查询的结果集:
Mysql数据库核心技术(十六)-查询数据(十一)-子查询

where (sex,age) in (以上结果集) 的含义是:相当于连续查询两次,第一次查询sex=女且age=10,第二次查询sex=男,age=22,然后将两次查询的结果集合并输出。


执行结果如下:
Mysql数据库核心技术(十六)-查询数据(十一)-子查询

由于user表中没有age为16的数据,所以只输出一条结果。

子查询语句三:
  1. select group_concat(age),sex,group_concat(name),group_concat(pid) from (select * from stu666 order by age desc) t group by sex;
复制代码

语句解释:
查询stu666表的全部数据,查询结果按年龄的倒序排列,再将该结果集作为父查询语句的表,二次查询结果集中的age、sex和pid字段数据,然后将结果集按照sex进行分组。

首先我们看一下子查询的结果:
Mysql数据库核心技术(十六)-查询数据(十一)-子查询

然后再执行完整语句,结果如下:
Mysql数据库核心技术(十六)-查询数据(十一)-子查询

子查询语句四:
  1. select * from user where exists (select * from stu666 where age=1);
复制代码
语句解释:
  1. 如果子查询有结果则执行父查询。not exists同理
复制代码
查询结果如下:
Mysql数据库核心技术(十六)-查询数据(十一)-子查询

因为子查询为空,所以根本就没有执行父查询,结果为空。

好了,关于子查询大家只要能理解以上四条语句的语法结构就完全可以了,下面大家自己练习一下,一定要多练习。
易博软件介绍

1

主题

219

帖子

112

积分

年费会员

Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20

积分
112

年费会员

发表于 2023-1-30 20:37:05 | 显示全部楼层
很好的mysql教程,支持楼主发布原创教程
发表于 2023-1-31 04:12:31 | 显示全部楼层
讲的非常好,浅显易懂~
发表于 2023-1-31 11:16:37 | 显示全部楼层
为了学mysql买了好几本书也没学会,这教程一看就懂了
发表于 2023-2-1 01:48:53 | 显示全部楼层
佩服佩服,受教了
发表于 2023-2-1 19:52:16 | 显示全部楼层
为了学mysql买了好几本书也没学会,这教程一看就懂了
发表于 2023-2-2 09:56:49 | 显示全部楼层
看一遍全部明白,剩下的就是记了,老师总结的很到位,记忆难度也小了不少

3

主题

185

帖子

99

积分

终身会员

Rank: 25Rank: 25Rank: 25Rank: 25Rank: 25Rank: 25Rank: 25

积分
99

终身会员

发表于 2023-2-3 02:01:22 | 显示全部楼层
佩服佩服,受教了

0

主题

14

帖子

8

积分

营销入门

Rank: 2

积分
8
发表于 2023-2-16 01:52:44 | 显示全部楼层
赞一个赞一个赞一个赞一个赞一个

0

主题

21

帖子

11

积分

营销入门

Rank: 2

积分
11
发表于 2023-2-19 01:29:11 | 显示全部楼层
老师辛苦了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

1、请认真发帖,禁止回复纯表情,纯数字等无意义的内容!帖子内容不要太简单!
2、提倡文明上网,净化网络环境!抵制低俗不良违法有害信息。
3、如果你对主帖作者的帖子不屑一顾的话,请勿回帖。谢谢合作!
3、问答求助区发帖求助后,如有其他用户热心帮您解决问题后,请自觉点击设为最佳答案按钮。

 
 
QQ在线客服
QQ技术支持
工作时间:
8:00-18:00
软著登字:
1361266号
官方微信扫一扫
weixin

QQ|小黑屋|Archiver|慈众营销 ( 粤ICP备15049986号 )|网站地图

自动发帖软件 | 自动发帖器 | 营销推广软件 | 网络营销工具 | 网络营销软件 | 网站推广工具 | 网络推广软件 | 网络推广工具 | 网页推广软件 | 信息发布软件 | 网站推广工具 | 网页推广软件

Powered by Discuz! X3.4   © 2012-2020 Comsenz Inc.  慈众科技 - Collect from 深圳吉宝泰佛文化有限公司 公司地址:罗湖区黄贝街道深南东路集浩大厦A1403

返回顶部 返回列表