定義:在一個(gè)完整的查詢語(yǔ)句里面,嵌入N個(gè)內(nèi)部查詢得來(lái)的結(jié)果,子查詢本身沒有什么么完整語(yǔ)法。導(dǎo)出可以嵌套子查詢。
如何區(qū)分那個(gè)地方需要用到子查詢呢?
在哪個(gè)子句中出現(xiàn),并沒有什么明確的結(jié)論。只是在一個(gè)整體中嵌入若干個(gè)部分。
簡(jiǎn)單出現(xiàn)位置參考:
1.WHERE子句中:當(dāng)子查詢返回單行單列、或者多行單列,單行單列的情況下,這種子查詢都往往出現(xiàn)在WHERE子句中。
2.FROM子句,子查詢返回多行多列數(shù)據(jù),可以按照表處理。
3.在SELECT中:子查詢返回單行單列。(不建議)
之所以要提出子查詢概念,主要是為了解決查詢的性能問(wèn)題。通過(guò)子查詢可以編寫性能更好的查詢語(yǔ)句。
WHERE中使用子查詢
WHERE子句的主要作用:限制數(shù)據(jù)表中數(shù)據(jù)行的顯示,一般都是做數(shù)據(jù)的篩選使用的。

- 查詢的關(guān)鍵是
1.第一步:一定要找到公司最低的工資,這個(gè)最低工資一定是統(tǒng)計(jì)的結(jié)果。(統(tǒng)計(jì)查詢語(yǔ)句MIN())SELECT MIN(sal) FROM emp;
2.第二步:圖片.png
圖片.png
(AVG)圖片.png
圖片.png
圖片.png
子查詢返回單行多列






子查詢返回多行多列
一旦子查詢返回單行多列的數(shù)據(jù),實(shí)際上子查詢所返回的內(nèi)容就屬于一個(gè)數(shù)據(jù)的范圍了。
-
IN 操作,圖片.png
圖片.png

***千萬(wàn)要記住,如果使用了NOTIN,并且子查詢的結(jié)果包含NULL則不會(huì)有任何查詢。

由于mgr有的結(jié)果為空,所以NOT IN 不會(huì)進(jìn)行查詢呢。
ANY操作:

①=ANY()的情況


②>ANY()的情況
比最小的值要大
③<ANY()
比最大的值要小
ALL:所有內(nèi)容
ALL:比集合中最大的還要大
<ALL:比集合中最小的還要小
這幾種符號(hào)的選擇,還是看我們的查詢要求,如比每個(gè)人都要大等。
以上就是用WHERE子查詢的情況包括:
1.單行單列
2.單行多列
3.多行單列
這三種情況會(huì)用WHERE進(jìn)行子查詢處理。






