服務啟動後驗證
# 檢查進程
ps -aux | grep mysql
# 應見兩個進程:mysqld (主進程) 與 mysqld_safe (監護進程)
# 連線測試
mysql -u root -p
# 進入互動模式,執行基本查詢驗證
MySQL 語法核心規範
字串常值:配對引號、轉義規則
- 單引號
'...' 與雙引號 "..." 皆可,但必須成對
- 引號內含同類引號:
'It\'s OK'、"He said \"Hi\""
- 連續字串常值自動合併:
SELECT 'a' 'b' 'c'; -- 'abc'
- 最佳實踐:統一使用單引號,符合 SQL 標準,避免與識別符混淆
識別符命名規則 (資料庫/表/欄位/別名)
| 規則 | 說明 |
| 可用字元 | 字母、數字、底線 _、美元符 $ (MySQL 專有) |
| 首字元 | 可為數字,但不能純數字 (避免與數值常值混淆) |
| 禁止字元 | 句點 . (保留給 db.table.col 限定語法) |
| 長度限制 | 別名 256 字元,其他通常 64 字元 (可修改原始碼 MYSQL_INSTALL_DB 調整,慎用) |
| 大小寫敏感度 | Linux 下表名區分大小寫,Windows 不區分;建議統一小寫 |
建議:避免使用 $ (與 PHP 變數衝突)、保留字、中文識別符。
數值函數速查表
所有數值函數引數錯誤或定義域外均回傳 NULL。
| 函數 | 功能 | 範例 | 結果 |
ABS(x) | 絕對值 | ABS(-5) | 5 |
CEILING(x) | 大於等於 x 的最小整數 | CEILING(3.14) | 4 |
FLOOR(x) | 小於等於 x 的最大整數 | FLOOR(3.14) | 3 |
ROUND(x) | 四捨五入到整數 | ROUND(3.5) | 4 |
ROUND(x,d) | 四捨五入到 d 位小數 | ROUND(3.14159,2) | 3.14 |
MOD(n,m) / n % m | 餘數 | MOD(10,3) | 1 |
SIGN(x) | 正負號 | SIGN(-5) | -1 |
EXP(x) | e^x | EXP(1) | 2.718... |
LOG(x) | 自然對數 | LOG(EXP(1)) | 1 |
LOG10(x) | 以 10 為底對數 | LOG10(100) | 2 |
POW(x,y) | x^y | POW(2,3) | 8 |
SQRT(x) | 平方根 | SQRT(16) | 4 |
RAND() | 0-1 隨機數 | RAND() | 0.123... |
三角函數與角度轉換
| 函數 | 功能 |
SIN(x), COS(x), TAN(x) | 正弦/餘弦/正切 (x 為弧度) |
ASIN(x), ACOS(x), ATAN(x) | 反三角函數 |
ATAN2(y,x) | 反正切 (y,x),回傳 -π 到 π |
DEGREES(x) | 弧度 → 角度 |
RADIANS(x) | 角度 → 弧度 |
比較與條件函數
| 函數 | 功能 | 範例 |
LEAST(x,y,...) | 回傳最小值 (至少 2 參數) | LEAST(3,1,4) = 1 |
GREATEST(x,y,...) | 回傳最大值 (至少 2 參數) | GREATEST(3,1,4) = 4 |
IF(cond, t, f) | 條件判斷 | IF(1>0, 'yes', 'no') |
IFNULL(x, y) | x 不為 NULL 回 x,否則回 y | IFNULL(NULL, 0) = 0 |
COALESCE(x,y,z...) | 回傳第一個非 NULL 參數 | COALESCE(NULL, NULL, 3) = 3 |
實戰常見陷阱提醒
- 整數除法:
SELECT 5/2 = 2.5 (非整數除法),若需整數商用 DIV:5 DIV 2 = 2
- NULL 運算:任何與
NULL 運算結果皆為 NULL,必須用 IS NULL/IFNULL/COALESCE 處理
- 浮點數精度:
FLOAT/DOUBLE 為近似值,金額計算必須用 DECIMAL(10,2)
- 字串連接:用
CONCAT(),|| 在預設 SQL_MODE 下為邏輯 OR
總結
掌握 MySQL 基礎語法規範 (引號、識別符、NULL 語意) 與核心函數,是撰寫正確、高效 SQL 的前提。建議將常用函數表列印備查,並在開發規範中強制要求:DECIMAL 處理金額、COALESCE 防禦 NULL、統一小寫識別符、避免保留字。
- 上一篇文章: Windows 環境 MySQL 服務安裝、移除與啟動失敗完整排查指南
- 下一篇文章: MySQL 5.0 官方手冊深度解讀:鎖機制與表鎖優化策略 (第五篇)
Copyright ©
程式碼之家 All Rights Reserved