SQL中的常用查詢

聚合

聚合的語法規則如下

SELECT [field1,field2,...fieldn] fun_name
FROM tablename
[WHERE where_condition]
[GROUP BY field1,field2,...fieldn
[WITH ROLLUP]]
[HAVING where_condition]

其中

  • fun_name表示要做的聚合操作,常用的有sum,count,max,min
  • GROUP BY指定要進行聚合的字段
  • WITH ROLLUP是可選語法,表明是否對分類聚合後的結果進行再彙總
  • HAVING關鍵字表示對分類後的結果再進行條件過濾

表連接

表連接又分爲兩種,分別是

  1. 內連接:僅選出兩張表中互相匹配的及記錄
  2. 外連接:會選出兩張表中其他不匹配的記錄
    外連接由可以分爲兩種:
  • 左連接:結果集包含左表中所有的記錄,右表沒有與其匹配的記錄也展示
  • 右連接:結果集包含右表中所有的記錄,左表沒有與其匹配的記錄也展示

子查詢

子查詢比較簡單,可以理解爲嵌套查詢。外層的查詢條件依賴於內層的查詢結果。
常用關鍵字有:in、not in、=、!=、exists、not exists
注意:表連接很多情況下優於子查詢! 所以優先選擇表連接進行查詢。

記錄聯合

記錄聯合,顧名思義,就是將結果集再聯合起來。語法規則如下:

SELECT * FROM t1
UNION|UNION ALL
SELECT * FROM t2
...
UNION|UNION ALL
SELECT * FROM tn

其中,
union和union all的主要區別是union all是把結果集直接合併在一起,而union是將union all後的結果進行一次distinct,去除重複記錄後的結果。(union反而比union all更多一步,有點違反常理)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章