1.什麼叫子查詢?
通俗的講就是查詢中有查詢,SQL語句中有多個select語句。
2.什麼地方可以嵌入子查詢?
SELECT 列 (不在標准之內)
FROM 表 (可以嵌入,作為表存在)
WHERE 條件 (可以嵌入,作為條件存在)
3. 舉例說明
假如此時有一個員工表emp,裡面記錄了員工的編號、名字、工作、工資及所在部門編號等信息
表結構如下:
查詢工資最高的員工的信息
SELECT * FROM emp WHERE sal = (SELECT max(sal) FROM emp); // 此時子查詢是嵌套在WHERE後面的。
查詢部門編號為30的員工的姓名和員工編號
SELECT e.empno, e.ename FROM (SELECT * FROM emp WHERE deptno = 30)e; //此時子查詢是嵌入在FROM後面的,當時此處也可以使用where條件來實現 相同效果。
查詢工資大於39部門所有員工工資的員工信息
SELECT * FROM emp WHERE sal > ALL (SELECT sal FROM emp WHERE deptno = 30);
查詢工資大於任一經理工資的員工信息
SELECT * FROM emp WHERE sal > ANY (SELECT sal FROM emp WHERE job='經理');