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

MySQL: ลบฐานข้อมูลที่มีตัวอักษรพิเศษ (?) ในชื่อด้วย Backtick

เมื่อชื่อฐานข้อมูล (หรือตาราง/คอลัมน์) มีตัวอักษรพิเศษ เช่น ?, -, 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 ทำงานได้กับชื่อออบเจ็กต์ทุกประเภท