อักขระ Underscore (_) ในชื่อตาราง MySQL
สรุป: ใช้ Underscore ได้ ไม่มีปัญหาใดๆ
ตัวอย่างที่ถูกต้อง
CREATE TABLE _StudentTrackerDemo (
StudentId INT,
StudentFirstName VARCHAR(100)
);
→ สร้างสำเร็จ ไม่มี Error
ข้อควรระวัง: Dash/Hyphen (-) ใช้ไม่ได้
CREATE TABLE Student-table (
Id INT,
Name VARCHAR(100)
);
-- ERROR 1064 (42000): You have an error in your SQL syntax...
เพราะ MySQL ตีความ - ว่าเป็น Operator ลบ ต้องใช้ Backtick หากต้องการใช้ Dash:
CREATE TABLE `Student-table` (
Id INT,
Name VARCHAR(100)
);
กฎการตั้งชื่อ Identifier ใน MySQL
- อักขระที่ใช้ได้: ตัวอักษร, ตัวเลข,
_(underscore),$ - อักขระที่ใช้ไม่ได้โดยตรง: Space,
-,.,@, อักขระพิเศษอื่นๆ - ต้องใช้ Backtick (
`) หากชื่อมีอักขระพิเศษ หรือเป็น Reserved Word - ความยาวสูงสุด: 64 ตัวอักษร
- Case Sensitivity: ขึ้นกับ OS (Windows ไม่แยก, Linux แยก)
แนวทางปฏิบัติที่ดี (Best Practice)
- ใช้
snake_caseสำหรับตารางและคอลัมน์:user_accounts,order_items - หลีกเลี่ยง Reserved Words:
order,group,select,keyฯลฯ - ใช้คำนามจำนวนเอกพจน์:
userไม่ใช่users(หรือตาม Convention ของทีม)