首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL SELECT 語法完整解析:從基礎到進階參數詳解

     編輯:MySQL 資料庫相關知識

完整語法骨架

SELECT * INTO OUTFILE '/tmp/export.csv'
FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n'
FROM users;
  • 文件在服務器端創建,需 FILE 權限,目標不可存在。
  • DUMPFILE:單行無格式,適合導出二進制數據。
  • export_options 語法同 LOAD DATA INFILE。

4. WHERE 條件構建

  • 比較:=, <=>, <>, !=, <, <=, >, >=
  • 範圍:BETWEEN ... AND ... (含邊界)
  • 集合:IN (...), NOT IN (...)
  • 模式:LIKE (% 任意字符, _ 單字符), REGEXP
  • 空值:IS NULL, IS NOT NULL
  • 邏輯:AND (優先級高), OR, NOT, XOR
  • 索引失效陷阱:函數包裹列、隱式類型轉換、!=/NOT IN/LIKE '%...' 導致全表掃描。

5. GROUP BY 與 HAVING

LIMIT 10           -- 前 10 行
LIMIT 10 OFFSET 20 -- 跳過 20 行取 10 行 (第 3 頁)
LIMIT 20, 10       -- 同義 (offset, count)
  • 大偏移量性能差 (需掃描 offset+limit 行),優化參考「延遲關聯」或「游標分頁」。

8. 鎖定讀 (FOR UPDATE / FOR SHARE)

  • FOR UPDATE:排他鎖,阻塞其他寫/鎖定讀。
  • FOR SHARE (8.0+) / LOCK IN SHARE MODE:共享鎖,阻塞寫。
  • NOWAIT:立即返回錯誤而不等待。
  • SKIP LOCKED:跳過已鎖定行 (任務隊列常用)。
  • OF tbl_name:僅鎖定指定表行。

9. 窗口函數 (8.0+)

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved