SELECT 選擇列表 可包含項目
*:依建表順序所有欄位
- 指定順序的欄位清單
- 別名:
column_name AS column_heading
- 運算式:欄位、常數、函數、算術/位運算組合
- 內部函數或聚合函數
- 以上任意組合
FROM 子句
- 指定查詢表,多表用逗號分隔
- 表別名:
tbl_name [AS] alias_name,後續引用必須用別名
- 別名不可數字開頭
WHERE 搜尋條件完整語法
[NOT] expression comparison_operator expression
[NOT] expression [NOT] LIKE "match_string"
[NOT] expression IS [NOT] NULL
[NOT] expression [NOT] BETWEEN expression AND expression
[NOT] column_name join_operator column_name
[NOT] boolean_expression
邏輯運算符優先序
AND(最高,除非括號改變)
OR
比較運算符對照
| 符號 | 意義 |
| = | 等於 |
| > | 大於 |
| < | 小於 |
| >= | 大於等於 |
| <= | 小於等於 |
| != / <> | 不等於 |
字串比較規則
< 表示字典序較前(靠近字母表開頭)
- 小寫 > 大寫 > 數字(視作業系統排序規則而定)
- 尾部空格被忽略:
'Dirk' = 'Dirk '
日期比較
< 表示較早,> 表示較晚
- 字串與日期比較需加引號
LIKE 模式匹配
- 適用
CHAR、VARCHAR、DATETIME(不含秒/毫秒)
- MySQL 也支援數值運算式用 LIKE
- DATETIME 建議用 LIKE:完整時間含日期部分,
WHERE time LIKE '%9:20%' 可匹配 'Jan 1,1900 9:20AM'
通配符
| 符號 | 意義 |
| % | 任意長度字串(含空字串) |
| _ | 任意單一字元 |
BETWEEN 範圍查詢
- 語法:
WHERE val BETWEEN x AND y(含首尾)
- 若 x > y 則不回傳任何行
IS NULL 判斷
- 專用於 NULL 值比較,一般比較運算符無法處理 NULL
- MySQL 3.23.6+ 支援
<=> 安全等於運算符,可比較 NULL