เมื่อชื่อฐานข้อมูล (หรือตาราง/คอลัมน์) มีตัวอักษรพิเศษ เช่น ?, -, space, หรือเป็นคำสงวน ต้องใช้ backtick (` `) ครอบชื่อเพื่อหลีกเลี่ยง syntax error
รูปแบบคำสั่ง
DROP DATABASE `database_name_with_special_chars`;
ตัวอย่างการใช้งาน
1. สร้างฐานข้อมูลที่มี ? ในชื่อ
CREATE DATABASE `test?data`;
ผลลัพธ์: Query OK, 1 row affected
2. ตรวจสอบรายการฐานข้อมูล
SHOW DATABASES;
จะเห็น test?data ในรายการ
3. ลบฐานข้อมูลด้วย backtick
DROP DATABASE `test?data`;
ผลลัพธ์: Query OK, 0 rows affected
4. ตรวจสอบอีกครั้ง - ฐานข้อมูลหายไปแล้ว
SHOW DATABASES;
test?data ไม่อยู่ในรายการแล้ว
ตัวอักษรที่ต้องใช้ Backtick บังคับ
| ตัวอักษร/สถานการณ์ | ตัวอย่าง |
|---|---|
| ช่องว่าง | `my database` |
| ขีดกลาง (-) | `my-db` |
| เครื่องหมายคำถาม (?) | `test?data` |
| คำสงวน (SELECT, ORDER, GROUP, v.v.) | `select`, `order` |
| ขึ้นต้นด้วยตัวเลข | `123db` |
| อักขระ Unicode/Thai | `ฐานข้อมูลไทย` |
คำสั่งอื่นที่ต้องใช้ Backtick เช่นกัน
-- สร้างตาราง
CREATE TABLE `my-table` (`id` INT, `name` VARCHAR(20));
-- เลือกฐานข้อมูล
USE `my-db`;
-- Query ข้อมูล
SELECT `col-name` FROM `my-table` WHERE `id` = 1;
-- ลบตาราง
DROP TABLE `my-table`;
ข้อควรระวัง
- Backtick (
`) ต่างจาก Single quote (') จงสับสน - บนคีย์บอร์ดไทย/สากล: กดปุ่มด้านบนซ้ายของตัวเลข 1 (~) พร้อม Shift
- แนะนำ: หลีกเลี่ยงตัวอักษรพิเศษในชื่อ ใช้ underscore (_) แทน
การใช้ backtick อย่างถูกต้องจะป้องกัน ERROR 1064 และทำให้โค้ด SQL ทำงานได้กับชื่อออบเจ็กต์ทุกประเภท