Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Đặt tên cột có khoảng trắng trong MySQL?

Sử dụng backtick (`) cho tên cột có khoảng trắng trong MySQL

MySQL cho phép tên cột chứa khoảng trắng, ký tự đặc biệt, từ khóa nếu bao quanh bằng backtick ` (phím cùng ~).

Ví dụ: Tạo bảng với tên cột có space

mysql> CREATE TABLE blankSpacesDemo (
    -> `Student Id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    -> `Student Full Name` VARCHAR(100)
    -> );

Chèn dữ liệu (phải dùng backtick):

mysql> INSERT INTO blankSpacesDemo(`Student Full Name`) VALUES 
('John Smith'), ('Carol Taylor'), ('David Miller');

Truy vấn (cũng cần backtick):

mysql> SELECT `Student Id`, `Student Full Name` FROM blankSpacesDemo;

Kết quả:

+------------+--------------------+
| Student Id | Student Full Name  |
+------------+--------------------+
| 1          | John Smith         |
| 2          | Carol Taylor       |
| 3          | David Miller       |
+------------+--------------------+

Quy tắc sử dụng backtick

  • Bắt buộc: Tên có space, ký tự đặc biệt, từ khóa SQL (order, group, select...)
  • Khuyến nghị: Luôn dùng backtick cho identifier (bảng, cột, index, alias) để nhất quán
  • Không cần: Tên đơn giản không space, không từ khóa (vd: id, name, created_at)

So sánh với chuẩn SQL

DatabaseQuoting identifier
MySQLBacktick `name` (mặc định), Double quote "name" (ANSI_QUOTES mode)
PostgreSQLDouble quote "name"
SQL ServerBracket [name], Double quote "name" (QUOTED_IDENTIFIER ON)
OracleDouble quote "NAME" (case-sensitive)
SQLiteDouble quote "name", Bracket [name], Backtick `name`

Lưu ý

  • Không dùng single quote ' cho identifier (đó là string literal)
  • Trong ứng dụng (PHP, Java, Python), driver thường tự escape identifier
  • Tránh tên cột có space nếu có thể → dùng snake_case: student_id, student_full_name