1. 程式人生 > 其它 >MySQL:淺淺總結 DQL(基本語法、執行順序)

MySQL:淺淺總結 DQL(基本語法、執行順序)

淺淺總結 DQL

DQL(Data Query Language):資料查詢語言

用於查詢資料庫中表的記錄。

本文是總結性文章,用於個人複習,不適合初學。

基本語法

SELECT
FROM <left table>
	<join_type> JOIN <right_talbe>
	ON <join_condition>
WHERE <where_condition>
GROUP BY <group_by_list>
HAVING <having_condition>
ORDER BY <order_by_condition>
LIMIT <limit_number>
  1. 基本查詢SELECT 不帶任何條件)
    • *:所有欄位,儘量少用(不直觀、影響效率)
    • 別名
    • 去重DISTINCT
  2. 條件查詢WHERE
    • 比較運算子
      • ><>=<==!=<>
      • BETWEEN ... AND ...IN(...)
      • LIKE ...IS NULL
    • 邏輯運算子
      • AND&&
      • OR||
      • NOT!
  3. 聚合函式NULL 不參與聚合函式運算)
    • COUNT
    • MAX
    • MIN
    • AVG
    • SUM
  4. 分組查詢GROUP BY
    • 支援多欄位分組
    • 可以使用 HAVING 進行分組後過濾
    • HAVING:分組後過濾,且支援對聚合函式的判斷
  5. 排序查詢ORDER BY
    • ASC:升序,預設
    • DESC:降序
    • 支援多欄位排序,按順序先後排序
    • :按姓名升序,姓名相同則按年齡降序
      ORDER BY age, name DESC
  6. 分頁查詢LIMIT
    • 語法LIMIT 起始索引, 每頁記錄數
    • 起始索引 = (查詢頁碼 - 1)* 每頁記錄數
    • :查詢第 3 頁資料,每頁展示 10 條記錄
      LIMIT 20, 10

執行順序

(7) SELECT
(1) FROM <left table>
(3) 	<join_type> JOIN <right_talbe>
(2) 	ON <join_condition>
(4) WHERE <where_condition
(5) GROUP BY <group_by_list>
(6) HAVING <having_condition>
(8) ORDER BY <order_by_condition>
(9) LIMIT <limit_number>
  • SELECT:選擇指定列
  • DISTINCT:指定列去重
  • FROM:指定查詢的表,計算笛卡爾積
  • JOIN:連線型別,新增關聯外部表資料
  • ON:連線條件
  • WHERE:條件查詢(分組前過濾)
  • GROUP BY:分組查詢
  • HAVING:條件查詢(分組後過濾)
  • ORDER BY:排序查詢
  • LIMIT:分頁查詢