MySQL查询的进阶操作--子查询(内查询)
生活随笔
收集整理的這篇文章主要介紹了
MySQL查询的进阶操作--子查询(内查询)
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
目錄
- 子查詢的概念
- 子查詢的分類
- 按照子查詢出現(xiàn)的位置分類:
- where或having后面
- 1、標(biāo)量子查詢
- 2、列子查詢
- 3、行子查詢
- select后面
- from后面
- exists后面
子查詢的概念
子查詢(也稱內(nèi)查詢)含義: 出現(xiàn)在其他語(yǔ)句中的select語(yǔ)句,稱為子查詢或內(nèi)查詢。外部的查詢語(yǔ)句,稱為主查詢或外查詢。子查詢的分類
按照子查詢出現(xiàn)的位置分類:
- select后面:
僅僅支持標(biāo)量子查詢 - from后面:
支持表子查詢 - where或having后面:
標(biāo)量子查詢(用的多)
列子查詢(用的多)
行子查詢(用的少) - exists后面(相關(guān)子查詢):
表子查詢
按結(jié)果集的行列數(shù)不同分類:
- 標(biāo)量子查詢(結(jié)果集只有一行一列)
- 列子查詢(結(jié)果集只有一列多行)
- 行子查詢(結(jié)果集有一行多列)
- 表子查詢(結(jié)果集一般為多行多列)
按照子查詢出現(xiàn)的位置分類:
where或having后面
- 1.標(biāo)量子查詢(單行子查詢)
- 2.列子查詢(多行子查詢)
- 3.行子查詢(多列多行)
特點(diǎn):
- 1.子查詢放在小括號(hào)內(nèi)
- 2.子查詢一般放在條件的右側(cè)
- 3.標(biāo)量子查詢,一般搭配著單行操作符 (> < >= <= = <>)使用
列子查詢一般搭配著多行操作符使用 in 、 any/some 、 all 。 - 4.子查詢的執(zhí)行優(yōu)先于主查詢執(zhí)行,主查詢的條件用到了子查詢的結(jié)果。
1、標(biāo)量子查詢
非法使用標(biāo)量子查詢 子查詢不是一行一列
2、列子查詢
列子查詢(多行子查詢): 返回多行,使用多行比較操作符。| IN / NOT IN | 等于列表中的任意一個(gè) |
| ANY / some | 和子查詢返回的某一個(gè)值比較 |
| ALL | 和子查詢返回的所有值比較 |
3、行子查詢
select后面
select后面的子查詢 僅僅支持標(biāo)量子查詢
from后面
將子查詢充當(dāng)一張表,要求必須起別名。
exists后面
總結(jié)
以上是生活随笔為你收集整理的MySQL查询的进阶操作--子查询(内查询)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 4.1.8 文件保护
- 下一篇: linux cmake编译源码,linu