在 MySQL 客戶端(mysql)交互式執行 SQL 時,遵循統一的編寫規範不僅能避免語法錯誤,更能提升代碼可讀性與團隊協作效率。本文梳理四大核心規則,並補充腳本導入、批量執行等實操技巧。
;:標準結束符,執行後顯示結果表格\G:垂直顯示結果,適合寬表或列值較長的場景mysql> SELECT * FROM customer;
mysql> SELECT * FROM customer\G
常見坑:忘寫分號直接回車,提示符變為 -> 進入多行模式,需補全分號才能執行。
以下三條語句等價:
SELECT * FROM customer;
select * FROM customer;
SeLeCt * FROM customer;
最佳實踐:
lower_case_table_names=1 避免跨平台坑)SELECT id, user_name, email
FROM `user`
WHERE status = 1
ORDER BY created_at DESC;
合法示例:
SELECT
id,
user_name,
email
FROM `user`
WHERE status = 1
AND created_at > '2023-01-01'
ORDER BY created_at DESC;
非法:在關鍵字中間插入換行(如 SEL\nECT)。
推薦風格:每個子句換行,條件對齊,長 IN 列表每值一行。
-- 註釋內容(注意 -- 後需跟空格)/* 註釋內容 */(可跨行,不可嵌套)SELECT * FROM `user`; -- 查詢所有用戶
/*
多行說明:
1. 業務背景
2. 優化思路
*/
.sql 文件(UTF-8 編碼)SOURCE /path/to/script.sql;mysql -u root -p db_name < script.sql路徑注意:Windows 路徑用正斜槓 D:/sql/script.sql 或雙反斜槓 D:\\sql\\script.sql。
| 參數 | 說明 |
|---|---|
-h | 主機地址,默認 localhost |
-P | 端口,默認 3306 |
-u | 用戶名 |
-p | 密碼(安全起見不寫值,交互輸入) |
-D | 默認數據庫 |
--default-character-set | 連接字符集,推薦 utf8mb4 |
--execute / -e | 直接執行 SQL 字符串 |
--vertical / -E | 垂直顯示結果(等同 \G) |
SHOW DATABASES; / SHOW TABLES; / DESC tbl_name;USE db_name; 切換默認庫STATUS; 查看連接信息(字符集、版本、線程 ID)HELP; 或 \? 內置幫助EXIT / QUIT / \q 退出$、!、` 等字符時,用單引號包裹或轉義max_allowed_packetmax_allowed_packet、net_buffer_length,關閉 autocommit 批量提交