子查询

2021-03-04  本文已影响0人  DOB_8199

含义

一条查询语句中又嵌套了另一条完整的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

上一篇下一篇

猜你喜欢

热点阅读