子查询

作者: DOB_8199 | 来源:发表于2021-03-04 12:34 被阅读0次

    含义

    一条查询语句中又嵌套了另一条完整的select语句,其中被嵌套的select语句,称为子查询或内查询

    在外面的查询语句,称为主查询或外查询


    特点

        1、子查询都放在小括号内

        2、子查询可以放在from后面、select后面、where后面、having后面,但一般放在条件的右侧

        3、子查询优先于主查询执行,主查询使用了子查询的执行结果


    分类

    按子查询出现的位置:

    select后面:

                        仅仅支持标量子查询

    from后面:

                        支持表子查询

    where或having后面:★

                        标量子查询(单行) √

                        列子查询  (多行) √

                        行子查询

    exists后面(相关子查询)

                        表子查询

    按结果集的行列数不同:

    标量子查询(结果集只有一行一列)

    列子查询(结果集只有一列多行)

    行子查询(结果集有一行多列)

    表子查询(结果集一般为多行多列)


    一、where或having后面

    1、标量子查询(单行子查询)

    2、列子查询(多行子查询)

    3、行子查询(多列多行)

    特点:

    ①子查询放在小括号内

    ②子查询一般放在条件的右侧

    ③标量子查询,一般搭配着单行操作符使用

        > < >= <= = <>

        列子查询,一般搭配着多行操作符使用

        in、any/some、all

    ④子查询的执行优先于主查询执行,主查询的条件用到了子查询的结果

    1. 标量子查询★


    2. 列子查询(多行子查询)★

    3. 行子查询(结果集一行多列或多行多列)


    二、select后面

    仅仅支持标量子查询


    三、from后面

    将子查询结果充当一张表,要求必须起别名


    四、exists后面(相关子查询)

    语法:

        exists(完整的查询语句)

    结果:

        1或0

    相关文章

      网友评论

          本文标题:子查询

          本文链接:https://www.haomeiwen.com/subject/dsqbfltx.html