首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

MySQL 反引號識別符:何時必須使用、何時可省略

     編輯:PHP 綜合知識

MySQL 使用反引號 `(鍵盤左上角 ~ 鍵)包裹**標識符**(資料庫名、表名、列名、索引名、別名),而非字符串字面量(字符串用單引號 ')。

必須使用反引號的情況

場景示例說明
標識符為保留字SELECT * FROM `order` WHERE `group` = 1order、group 為 SQL 關鍵字
包含特殊字符CREATE TABLE `user-data` (id INT)連字符、空格、@、# 等
以數字開頭SELECT `2024_sales`.* FROM ...標準標識符不能以數字開頭
區分大小寫(系統變量)SET `@MyVar` = 1用戶變量區分大小寫

可省略的情況

  • 標識符僅含字母、數字、下劃線、$,且不以數字開頭、非保留字
  • 例如:users、user_name、id、created_at

最佳實踐建議

  1. 統一加反引號:ORM/查詢構建器自動處理,手寫 SQL 也建議全加,消除認知負擔
  2. 避免使用保留字命名:重命名 order → orders、group → groups、key → key_id
  3. ANSI 模式下改用雙引號:SET 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 不加也合法,但統一風格利於維護與自動化工具解析。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved