一、數學函數
| 函數 | 說明 | 範例 |
| ABS(x) | 絕對值 | ABS(-5) → 5 |
| CEILING(x) | 向上取整 | CEILING(3.14) → 4 |
| FLOOR(x) | 向下取整 | FLOOR(3.99) → 3 |
| ROUND(x, d) | 四捨五入保留 d 位小數 | ROUND(3.14159, 2) → 3.14 |
| RAND([seed]) | 0-1 隨機數,種子固定則序列固定 | RAND(1) |
| MOD(x, y) | 餘數 | MOD(10, 3) → 1 |
| POWER(x, y) | x 的 y 次方 | POWER(2, 3) → 8 |
| SQRT(x) | 平方根 | SQRT(16) → 4 |
| TRUNCATE(x, d) | 截斷到 d 位小數 (不四捨五入) | TRUNCATE(3.14159, 2) → 3.14 |
| GREATEST/LEAST | 最大/最小值 | GREATEST(1,5,3) → 5 |
二、聚合函數 (搭配 GROUP BY)
| 函數 | 說明 |
| COUNT(col) | 非 NULL 行數 |
| SUM(col) | 求和 |
| AVG(col) | 平均值 |
| MIN/MAX(col) | 最小/最大值 |
| GROUP_CONCAT(col [SEPARATOR ',']) | 分組內字串聚合 |
三、字串函數
| 函數 | 說明 |
| CONCAT(s1, s2, ...) | 拼接,任一 NULL 結果 NULL |
| CONCAT_WS(sep, s1, s2, ...) | 帶分隔符拼接,忽略 NULL |
| LENGTH(str) / CHAR_LENGTH(str) | 位元組長度 / 字元長度 |
| SUBSTRING(str, pos, len) | 截取子串 |
| LEFT/RIGHT(str, len) | 左/右截取 |
| TRIM([BOTH|LEADING|TRAILING] [remstr] FROM str) | 去除首尾空格或指定字元 |
| REPLACE(str, from, to) | 全域替換 |
| LOCATE(substr, str) / POSITION(substr IN str) | 子串首次出現位置 |
| LOWER/UPPER(str) | 大小寫轉換 |
| REVERSE(str) | 反轉字串 |
四、日期時間函數
| 函數 | 說明 |
| NOW() / CURRENT_TIMESTAMP | 當前日期時間 |
| CURDATE() / CURRENT_DATE | 當前日期 |
| CURTIME() / CURRENT_TIME | 當前時間 |
| DATE_ADD(date, INTERVAL expr unit) | 日期加減 |
| DATE_SUB(date, INTERVAL expr unit) | 日期減法 |
| DATEDIFF(date1, date2) | 天數差 |
| DATE_FORMAT(date, fmt) | 格式化輸出 (%Y-%m-%d %H:%i:%s) |
| STR_TO_DATE(str, fmt) | 字串解析為日期 |
| DAYOFWEEK/MONTH/YEAR(date) | 星期/月/年 |
| LAST_DAY(date) | 該月最後一天 |
| QUARTER(date) | 季度 (1-4) |
| WEEK(date [, mode]) | 週數 |
五、加密與雜湊
| 函數 | 說明 |
| MD5(str) | MD5 雜湊 (32 hex) |
| SHA1(str) / SHA2(str, 256/512) | SHA 雜湊 |
| PASSWORD(str) | MySQL 內部密碼雜湊 (5.7+ 已移除) |
| AES_ENCRYPT/DECRYPT(str, key) | AES 加解密,結果為二進位 |
| ENCODE/DECODE(str, key) | 簡易加解密 (不安全,5.7+ 移除) |
六、流程控制函數
| 函數 | 說明 |
| IF(cond, true_val, false_val) | 三元運算子 |
| IFNULL(val1, val2) | val1 非 NULL 則 val1 否則 val2 |
| NULLIF(val1, val2) | 相等回傳 NULL,否則 val1 |
| CASE WHEN cond THEN res [...] ELSE def END | 多條件分支 |
| CASE expr WHEN v1 THEN r1 [...] ELSE def END | 值匹配分支 |
七、格式化函數
| 函數 | 說明 |
| FORMAT(num, decimals) | 千分位逗號格式化 |
| DATE_FORMAT(date, fmt) | 日期格式化 |
| TIME_FORMAT(time, fmt) | 時間格式化 |
| INET_ATON(ip) | IPv4 轉無符號整數 |
| INET_NTOA(num) | 整數轉 IPv4 |
八、類型轉換
CAST(expr AS type) -- type: BINARY, CHAR, DATE, TIME, DATETIME, SIGNED, UNSIGNED, DECIMAL
CONVERT(expr, type) -- 同 CAST,ODBC 語法
九、系統資訊函數
| 函數 | 說明 |
| VERSION() | 伺服器版本 |
| DATABASE() / SCHEMA() | 當前資料庫 |
| USER() / CURRENT_USER() | 連線用戶 / 認證用戶 |
| CONNECTION_ID() | 連線執行緒 ID |
| FOUND_ROWS() | 上一條 SELECT 滿足條件總行數 (配合 SQL_CALC_FOUND_ROWS) |
| BENCHMARK(count, expr) | 效能測試:重複執行 expr count 次 |
| LAST_INSERT_ID() | 上一條 INSERT 產生的 AUTO_INCREMENT 值 |