MySQL 使用反引號 `(鍵盤左上角 ~ 鍵)包裹**標識符**(資料庫名、表名、列名、索引名、別名),而非字符串字面量(字符串用單引號 ')。
| 場景 | 示例 | 說明 |
|---|---|---|
| 標識符為保留字 | SELECT * FROM `order` WHERE `group` = 1 | order、group 為 SQL 關鍵字 |
| 包含特殊字符 | CREATE TABLE `user-data` (id INT) | 連字符、空格、@、# 等 |
| 以數字開頭 | SELECT `2024_sales`.* FROM ... | 標準標識符不能以數字開頭 |
| 區分大小寫(系統變量) | SET `@MyVar` = 1 | 用戶變量區分大小寫 |
users、user_name、id、created_atorder → orders、group → groups、key → key_idSET sql_mode='ANSI_QUOTES' 後,"identifier" 為標識符,'string' 為字符串-- ❌ 錯誤:字符串字面量用了反引號
INSERT INTO users (name) VALUES (`John`);
-- ✅ 正確:字符串用單引號,標識符用反引號
INSERT INTO `users` (`name`) VALUES ('John');
原文代碼INSERT INTO \`users\` (\`UserName\`, \`PassWord\`) ...屬於「統一加反引號」的良好習慣,雖UserName/PassWord不加也合法,但統一風格利於維護與自動化工具解析。