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