目标:
    1:掌握子查询的应用场景
    2:掌握什么是子查询以及分类及其用法

    一:子查询的应用场景

    答:查询某个信息,一条SQL语句不能成功查询,需要多条SQL语句才可成功查询,这是就可以用到子查询(sql语句的嵌套)

    二:什么是子查询以及分类及其用法

    子查询:子查询就是将一条或多条sql语句嵌套进另外一条SQL语句内,嵌套语句是子查询语句,被嵌套语句(外部)是主查询语句
    例如 select from classes where age > (select avg(new_age) from phone); 黄色区域的就是子查询语句,外面的就是主查询语句

    子查询语句的分类:

    【重点】1.标量子查询:子查询语句返回的是一个数据,但不局限于数据(一行一列)
    【重点】2.列子查询:子查询语句返回的是一列多行的数据
    3.行子查询:子查询语句返回的是一行多列的数据
    4.表子查询:子查询语句返回的是多行多列的数据

    注意事项:子查询是一条完整独立的SQL语句

    子查询的用法(代码示例):

    标量子查询语法:select
    from classeswhere 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; 在查询比平均年龄大的学生信息

    ————————————————————————————————————————————

    快速代码体验:

    image.png


    列子查询语法: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);


    快速代码体验:

    image.png