From eb1b9cbb288bcacdb5c5190062e020579674d6ad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E4=BA=9A=E8=BE=89?= <3192667214@qq.com> Date: Wed, 25 Oct 2023 04:07:55 +0000 Subject: [PATCH] =?UTF-8?q?41=20=E5=91=A8=E4=BA=9A=E8=BE=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 周亚辉 <3192667214@qq.com> --- ...45\350\257\242\347\254\224\350\256\260.md" | 78 +++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 "41 \345\221\250\344\272\232\350\276\211/20231024 \345\255\220\346\237\245\350\257\242\347\254\224\350\256\260.md" diff --git "a/41 \345\221\250\344\272\232\350\276\211/20231024 \345\255\220\346\237\245\350\257\242\347\254\224\350\256\260.md" "b/41 \345\221\250\344\272\232\350\276\211/20231024 \345\255\220\346\237\245\350\257\242\347\254\224\350\256\260.md" new file mode 100644 index 0000000..d1fb075 --- /dev/null +++ "b/41 \345\221\250\344\272\232\350\276\211/20231024 \345\255\220\346\237\245\350\257\242\347\254\224\350\256\260.md" @@ -0,0 +1,78 @@ +## 子查询 + +含义: + +- 一条查询语句中又嵌套了另一条完整的select语句 +- 外面的语句可以是insert、update、delete、select等,一般select作为外面语句较多 +- 被嵌套的select语句,称为子查询或内查询 +- 在外面的查询语句,称为主查询或外查询 + +特点: + +- 子查询都放在小括号内 + +- 子查询可以放在from后面、select后面、where后面、having后面,但一般放在条件的右侧 + +- 子查询优先于主查询执行,主查询使用了子查询的执行结果 + +- 子查询根据查询结果的行数不同分为以下两类: + +- - 单行子查询 + + - - 结果集只有一行 + + - 一般搭配单行操作符使用:> < = <> >= <= + + - 非法使用子查询的情况: + + - - 子查询的结果为一组值 + - 子查询的结果为空 + + - 多行子查询 + + - - 结果集有多行 + - 一般搭配多行操作符使用:any、all、in、not in + +- in:属于子查询结果中的任意一个就行 + +- any和all往往可以用其他查询代替 + +分类: + +按子查询出现的位置: + +> select后面: +> 仅仅支持标量子查询 +> +> from后面: +> 支持表子查询 必须起别名 +> where或having后面:★ +> 标量子查询(单行) √ +> 列子查询 (多行) √ +> +> 行子查询 +> +> exists后面(相关子查询) +> 表子查询 + +按结果集的行列数不同: + +- 标量子查询(结果集只有一行一列) +- 列子查询(结果集只有一列多行) +- 行子查询(结果集有一行多列) +- 表子查询(结果集一般为多行多列) + +**where或having后面** + +- 标量子查询(单行子查询) +- 列子查询(多行子查询) +- 行子查询(多列多行) + +特点: + +- 子查询放在小括号内 +- 子查询一般放在条件的右侧 +- 标量子查询,一般搭配着单行操作符使用> < >= <= = <> +- 列子查询,一般搭配着多行操作符使用**in、any/some、all** +- **in /not in =any** +- 子查询的执行优先于主查询执行,主查询的条件用到了子查询的结果 \ No newline at end of file -- Gitee