表的複雜查詢----多表查詢、兩表的條件連線、內連線(自連線)、左外連線、右外連線、子查詢、分頁查詢
阿新 • • 發佈:2019-01-31
基於兩個或兩個以上的表或檢視的查詢。
例如:emp和dept是兩張表。(這兩張表的deptno是共同欄位)
①通過什麼條件把兩張表關聯(如果不使用條件關聯將產生行數乘積的合集---笛卡爾集)
例子:emp表字段包含:每行有自己的名字和id以及自己的上級的id,同時自己的上級也在這個表中的某一行
②自連線(內連線)--inner join on顯示按條件左右兩表都滿足的項
左外連線:--left join on顯示左邊表全部,右邊表匹配左邊
右外連線:--right join on顯示右邊表全部,左邊表匹配右邊
全外連線
③子查詢:指嵌入到其他sql語句中的select查詢
單行子查詢(子查詢部分如果執行只返回一行)例子
多行子查詢(子查詢部分返回的是多行,所以使用in關鍵字)例子
在from子句中使用子查詢
sqlserver分頁查詢:(top---not in())
例子:顯示按時間第6到第10個入職的員工。思路:
MySQL分頁查詢:(limit 起始行,頁數;)
- mysql> SELECT * FROM table LIMIT 5,10; // 檢索記錄行 6-15
- //為了檢索從某一個偏移量到記錄集的結束所有的記錄行,可以指定第二個引數為 -1:
- mysql> SELECT * FROM table LIMIT 95,-1; // 檢索記錄行 96-last.
- //如果只給定一個引數,它表示返回最大的記錄行數目:
- mysql> SELECT * FROM table LIMIT 5; //檢索前 5 個記錄行
- //換句話說,LIMIT n 等價於 LIMIT 0,n。