Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

ใช้ตัวอักษรพิเศษในชื่อคอลัมน์ MySQL ด้วย Backtick

บทนำ

MySQL อนุญาตให้ใช้ตัวอักษรพิเศษ (Special Characters) ในชื่อคอลัมน์/ตาราง ได้โดยการครอบด้วย Backtick (`)

ตัวอย่างการสร้างตารางชื่อคอลัมน์มีขีดกลาง (-)

mysql> CREATE TABLE DemoTable (
    -> `Student-Id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    -> `Student-Name` VARCHAR(100),
    -> `Student-Age` INT
    -> );
Query OK, 0 rows affected (0.55 sec)

เพิ่มข้อมูล (ต้องใช้ Backtick ครอบชื่อคอลัมน์)

mysql> INSERT INTO DemoTable(`Student-Name`, `Student-Age`) VALUES('Chris', 21);
mysql> INSERT INTO DemoTable(`Student-Name`, `Student-Age`) VALUES('Mike', 19);
mysql> INSERT INTO DemoTable(`Student-Name`, `Student-Age`) VALUES('Bob', 18);

แสดงข้อมูล

mysql> SELECT * FROM DemoTable;

ผลลัพธ์

+------------+--------------+-------------+
| Student-Id | Student-Name | Student-Age |
+------------+--------------+-------------+
| 1          | Chris        | 21          |
| 2          | Mike         | 19          |
| 3          | Bob          | 18          |
+------------+--------------+-------------+
3 rows in set (0.00 sec)

กฎการใช้ Backtick

สถานการณ์ตัวอย่าง
ชื่อมีช่องว่าง`First Name`
ชื่อมีขีดกลาง`Student-Id`
ชื่อเป็น Reserved Word`SELECT`, `ORDER`, `GROUP`
ชื่อขึ้นต้นด้วยตัวเลข`123Column`
ชื่อมีตัวอักษรพิเศษอื่นๆ`Col@Name`

แนวทางปฏิบัติที่ดี (Best Practice)

  1. หลีกเลี่ยง ตัวอักษรพิเศษและ Reserved Words ในชื่อ Identifier
  2. ใช้ snake_case (lowercase + underscore): student_id, student_name
  3. หากต้องใช้ชื่อที่มีตัวพิเศษ ให้ใช้ Backtick **ทุกครั้ง** ที่อ้างอิง
  4. ตั้งค่า sql_mode=ANSI_QUOTES เพื่อให้ Double Quote (") ทำหน้าที่เหมือน Backtick

คำสั่งที่ต้องใช้ Backtick

SELECT `Student-Name` FROM `DemoTable` WHERE `Student-Age` > 18;
ALTER TABLE `DemoTable` ADD COLUMN `New-Column` INT;