🕶️师兄简介:机械专业,通过自学成功进入IT领域,求学期间实现经济独立,对自学、兼职、计算机、学习规划等有独到见解!「点击了解更多」
🤖师兄致力解决在大学生活与学习中遇到的各种问题.
🎁 公众号「渣师兄」内回复「渣学」可获得超 5T 的新生见面礼!
🔗官方网站: 渣学网 →「zhaxueit.cn」→ 大学生活与学习一站式解决方案.
🙏找师兄帮忙「无偿」请➕💓:zhaxueit
📓进资源群「每日分享」【免费】(坑位有限)也请➕💓:zhaxueit 并备注「进群」
👀个人主页:@渣师兄 ,欢迎关注、私信师兄!
🐐 登高必自卑,行远必自迩.
🍇 我始终坚信越努力越幸运
⭐️ 那些打不倒我们的终将会让我们变得强大
🍑 希望在编程道路上深耕的小伙伴都会越来越好
子查询【重点、面试点】
子查询的应用场景
答:查询某个信息,一条SQL语句不能成功查询,需要多条SQL语句才可成功查询,这是就可以用到子查询(sql语句的嵌套)
什么是子查询以及分类及其用法
子查询:子查询就是将一条或多条sql语句嵌套进另外一条SQL语句内,嵌套语句是子查询语句,被嵌套语句(外部)是主查询语句
例如 select * from classes where age > (select avg(new_age) from phone); 黄色区域的就是子查询语句,外面的就是主查询语句
子查询语句的分类:
【重点】1.标量子查询:子查询语句返回的是一个数据,但不局限于数据(一行一列)
【重点】2.列子查询:子查询语句返回的是一列多行的数据
3.行子查询:子查询语句返回的是一行多列的数据
4.表子查询:子查询语句返回的是多行多列的数据
注意事项:子查询是一条完整独立的SQL语句
子查询的用法(代码示例):
标量子查询语法:select * from classes where age > (select avg(age) from classes) ;
表示查询 classes表内学生年龄age 大于学生平均年龄avg(age)的所有学生信息
——————————————————————————————————————————
普通语法:为了达到上面的结果,不使用子查询,需要写两条SQL语句才能实现
语句1:select avg(age) from classes; 先求出学生的平均年龄,假设是28
语句2:select * from classes where age > 28; 在查询比平均年龄大的学生信息
———————————————————————————————————————————
快速代码体验:
列子查询语法:select * from classes where classes.new_age in (select age from phone);
表示查询出classes表内的new_age字段信息等于 phone表的age字段的所有学生信息
——————————————————————————————
普通语法:
语句1:select age from phone 先查询出phone表内的所有age字段信息,返回值是一列多行,假设为1,2,5
语句2:select * from classes where classes.new_age in (1,2,5);
快速代码体验: