本文主要是介绍MySQL数据库基础(十二):子查询(三步走),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
文章目录
子查询(三步走)
一、子查询(嵌套查询)的介绍
二、子查询的使用
三、总结
子查询(三步走)
一、子查询(嵌套查询)的介绍
在一个 select 语句中,嵌入了另外一个 select 语句, 那么被嵌入的 select 语句称之为子查询语句,外部那个select语句则称为主查询。
主查询和子查询的关系:
-
子查询是嵌入到主查询中
-
子查询是辅助主查询的,要么充当条件,要么充当数据源(数据表)
-
子查询是可以独立存在的语句,是一条完整的 select 语句
二、子查询的使用
例1、查询学生表中大于平均年龄的所有学生
需求:查询年龄 > 平均年龄的所有学生
前提:
① 获取班级的平均年龄值
② 查询表中的所有记录,判断哪个同学 > 平均年龄值
第一步:写子查询
select avg(age) from students;
第二步:写主查询
select * from students where age > (平均值);
第三步:第一步和第二步进行合并
select * from students where age > (select avg(age) from students);
例2、查询学生在班的所有班级名字
需求:显示所有有学生的班级名称
前提:
① 先获取所有学员都属于那些班级
② 查询班级表中的所有记录,判断是否出现在①结果中,如果在,则显示,不在,则忽略。
第一步:编写子查询
select distinct cls_id from students is not null;
第二步:编写主查询
select * from classes where cls_id in (1, 2, 3);
第三步:把主查询和子查询合并
select * from classes where cls_id in (select distinct cls_id from students where cls_id is not null);
例3、查找年龄最小,成绩最低的学生
第一步:获取年龄最小值和成绩最小值
select min(age), min(score) from student;
第二步:查询所有学员信息(主查询)
select * from students where (age, score) = (最小年龄, 最少成绩);
第三步:把第一步和第二步合并
select * from students where (age, score) = (select min(age), min(score) from students);
三、总结
子查询是一个完整的SQL语句,子查询被嵌入到一对小括号里面
掌握子查询编写三步走
-
📢博客主页:https://lansonli.blog.csdn.net
-
📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!
-
📢本文由 Lansonli 原创,首发于 CSDN博客🙉
-
📢停下休息的时候不要忘了别人还在奔跑,希望大家抓紧时间学习,全力奔赴更美好的生活✨
这篇关于MySQL数据库基础(十二):子查询(三步走)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!