定義:select陳述句中嵌套select陳述句,被嵌套的select陳述句是子查詢,
子查詢可以出現在:
select ....(select).. from ....(select).. where ....(select)..
1.where后面嵌套子查詢
select * from emp where sal > (select avg(sal) from emp) ;
2.from后面嵌套子查詢*

SELECT d.dname,AVG(s.grade) '部門平均薪資' FROM emp e JOIN salgrade s ON e.sal BETWEEN s.losal AND s.hisal JOIN dept d ON e.deptno = d.deptno GROUP BY d.dname
3.在select 后面嵌套子查詢
找出每個員工所在的部門名稱
寫法一:看作臨時表 SELECT t.ename,d.dname FROM dept d JOIN (SELECT e.ename,e.deptno FROM emp e) t ON t.deptno = d.deptno 寫法二:連接查詢 SELECT e.ename,d.dname FROM emp e JOIN dept d ON e.deptno = d.deptno 寫法三:select后嵌套子查詢 SELECT e.ename,(SELECT d.dname FROM dept d WHERE d.deptno = e.deptno) AS dept FROM emp e ;
4.union
可將查詢結果集相加
SELECT ename,job FROM emp e WHERE job = 'CLERK' UNION SELECT ename,job FROM emp e WHERE job = 'SALESMAN'
而且兩張不相干的表中資料也能夠因此拼接在一起,(但是列數保持一致)
SELECT ename FROM emp UNION SELECT dname FROM dept
5.*limit
重點中的重點,分頁查詢全靠它
1)limit是mysql中特有的,其他資料庫中沒有,但是Oracle中有一個相同的機制叫rownum,
2)limit取結果集中的部分資料
3)語法機制:limit startIndex,length
? startindex表示起始位置,從0開始,0表示第一條資料,
? length表示取幾個,
4)limit是sql陳述句中最后一個執行的環節,

(當前頁數-1)* 頁的大小 = 當前頁起始下標
本文來自博客園,作者:腹白,轉載請注明原文鏈接:https://www.cnblogs.com/wyh518/
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/518585.html
標籤:MySQL
上一篇:多表連接查詢
