子查詢
子查詢介紹
-
含義:出現(xiàn)在其他語句(增刪改查語句)中的select語句,稱為子查詢或內查詢,外部的查詢語句,稱為主查詢或者外查詢
圖示 -
子查詢分類(以查詢語句為例)
分類
where后面的子查詢

image.png
子查詢都是優(yōu)先于主查詢先去執(zhí)行,因為主查詢用到了子查詢的結果。
where后面的標量子查詢

案例:標量子查詢

支持多個標量子查詢
where后面的列子查詢(又稱多行子查詢)

image.png

案例:

image.png
where后面的行子查詢(了解查詢)
image.png

image.png
select后面的子查詢(只支持標量子查詢)
了解即可,可用別的查詢方式替換

了解即可,可用別的查詢方式替換
from后面的子查詢使用(表子查詢)

image.png
exists后面的子查詢使用(又叫相關子查詢,用的也不多)
- 語法:select exists(子查詢語句);
-
結果只有2個:1或者0;
根據(jù)子查詢的結果就行判斷是1還是0,子查詢的結果有值就是1,為空則值為0.
image.png
image.png
分頁查詢

語法

案例1

案例2
聯(lián)合查詢
- union 聯(lián)合 合并:將多條查詢語句的結果合并成一個結果
- 語法:
查詢語句1
union
查詢語句2
union
... - 應用場景:
要查詢的結果來自于多個表,且多個表沒有直接的連接關系,但查詢的信息一致時 - 特點:★
1、要求多條查詢語句的查詢列數(shù)是一致的!
2、要求多條查詢語句的查詢的每一列的類型和順序最好一致,查詢字段名稱不一致的時候,返回的字段名稱為前面的一條sql為標準,但內容卻是各自查詢的東西。
3、union關鍵字默認去重,如果使用union all 可以包含重復項
4、union的子句中,不用寫order by,合并后的結果集可以進行order by,子句order by沒有意義。
引入的案例:查詢部門編號>90或郵箱包含a的員工信息
- SELECT * FROM employees WHERE email LIKE '%a%' OR department_id>90;
- SELECT * FROM employees WHERE email LIKE '%a%'
UNION
SELECT * FROM employees WHERE department_id>90;



