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

MySQL SELECT 進階語法詳解(一):完整語法架構與關鍵字選項解析

     編輯:MySQL 資料庫相關知識

SELECT 完整語法架構

SELECT [STRAIGHT_JOIN] [SQL_SMALL_RESULT] [SQL_BIG_RESULT] [HIGH_PRIORITY]
       [DISTINCT | DISTINCTROW | ALL] select_list
       [INTO {OUTFILE | DUMPFILE} 'file_name' export_options]
       [FROM table_references
         [WHERE where_definition]
         [GROUP BY col_name, ...]
         [HAVING where_definition]
         [ORDER BY {unsigned_integer | col_name | formula} [ASC | DESC], ...]
         [LIMIT [offset,] rows]
         [PROCEDURE procedure_name]]

最簡形式

SELECT select_list

可直接進行運算:SELECT 1+1 → 2
可賦值給變數,PHP 中可借用 MySQL 函數運算後賦值給 PHP 變數。

MySQL 擴展關鍵字(非 ANSI SQL92)

關鍵字功能使用建議
STRAIGHT_JOIN強制按 FROM 順序聯表,優化器順序不佳時使用謹慎使用,多數情況不需要
SQL_SMALL_RESULT告知優化器結果集小,用臨時表而非排序配合 GROUP BY/DISTINCT 使用
SQL_BIG_RESULT告知優化器結果集大,用排序而非臨時表配合 GROUP BY/DISTINCT 使用
HIGH_PRIORITY提升 SELECT 優先級高於 UPDATE極少數緊急查詢使用

去重關鍵字

  • DISTINCT / DISTINCTROW:結果集僅保留非重複行,NULL 視為相等(多個 NULL 僅保留一個)
  • ALL:預設行為,無實際作用

INTO OUTFILE / DUMPFILE 匯出檔案

  • 檔案建立於伺服器端,不可預先存在
  • export_options 語法同 LOAD DATA INFILE 的 FIELDS/LINES 子句
  • OUTFILE:正常匯出,含欄位/行結束符
  • DUMPFILE:僅寫入單行原始資料,無任何分隔符

實務建議

絕大多數場景下,四個擴展關鍵字(STRAIGHT_JOIN、SQL_SMALL_RESULT、SQL_BIG_RESULT、HIGH_PRIORITY)皆**不需要使用**,優化器通常已足夠智慧。

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