本篇文章給大家?guī)砹岁P(guān)于mysql的相關(guān)知識,其中主要介紹了數(shù)據(jù)庫子查詢語法規(guī)則的相關(guān)問題,子查詢是在查詢語句里面再嵌套一個查詢,這是因為我們在提取數(shù)據(jù)的時候有很多不知道的數(shù)據(jù)產(chǎn)生了依賴關(guān)系;下面一起來看一下,希望對大家有幫助。
推薦學(xué)習(xí):mysql視頻教程
子查詢是在查詢語句里面再嵌套一個查詢,這是因為我們在提取數(shù)據(jù)的時候有很多不知道的數(shù)據(jù)產(chǎn)生了依賴關(guān)系。此時我們就需要先查詢一組數(shù)據(jù)的結(jié)果集,然后將這個結(jié)果集作用為下一個查詢的對象。在 “表連接的章節(jié)”,我們曾說過子查詢的效率低下的問題,其實并不是所有的子查詢效率都是低下的,“WHERE” 子查詢在匹配記錄的時候要反復(fù)執(zhí)行,這是不推薦使用的;但是如果將查詢結(jié)果集當(dāng)做一張表來使用,與其他的表做一個連接,這就是 “FROM” 子句的子查詢了,這種子查詢的方式,還是比較推薦使用的。
詳細(xì)的說,子查詢分為 “單行子查詢”、“多行子查詢”、"WHERE"子查詢、“FROM” 子查詢 和 “SELECT” 子查詢;這些都是該章節(jié)我們需要學(xué)習(xí)的內(nèi)容。
子查詢簡介
子查詢是一種查詢語句中再嵌套一個查詢的語句
普通查詢語句分為 “SELECT” 子查詢、“FROM” 子查詢、“WHERE"子查詢;(重點推薦使用 " ‘FROM’ 子查詢”)
子查詢示例如下:
查詢底薪超過公司平均底薪的員工信息。(之前我們使用過表連接的方式做個這個案例,這里來看一下如何通過子查詢的方式來實現(xiàn)。)
SELECT empno, ename, sal FROM t_emp WHERE sal >= (SELECT AVG(sal) FROM t_emp); -- 正常情況下,將聚合函數(shù)作為 WHERE 子句的條件是不可以的,但是這里利用子查詢與聚合函數(shù)先將平均底薪查詢出來,這就變成具體的數(shù)據(jù)了 -- 這種情況下,作為 WHERE 子句的條件,就可以被使用了