Tóm tắt
MySQL sử dụng hai loại dấu nháy chính với mục đích khác nhau:
- Backtick (`): Bao quanh tên định danh (tên bảng, tên cột) – bắt buộc khi tên trùng từ khóa hoặc chứa ký tự đặc biệt.
- Single quote ('): Bao quanh giá trị chuỗi (string literal) – dùng cho dữ liệu văn bản, ngày tháng.
Ví dụ minh họa
1. Tạo bảng
CREATE TABLE QuotesDemo (
Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
UserName VARCHAR(20),
UserAge INT
);
2. Chèn dữ liệu (dùng backtick cho cột, single quote cho giá trị)
INSERT INTO QuotesDemo (`UserName`, `UserAge`) VALUES ('John', 23);
INSERT INTO QuotesDemo (`UserName`, `UserAge`) VALUES ('Carol', 21);
INSERT INTO QuotesDemo (`UserName`, `UserAge`) VALUES ('Sam', 22);
3. Truy vấn (backtick cho tên bảng/cột, single quote cho giá trị so sánh)
SELECT * FROM `QuotesDemo` WHERE `UserName` = 'Carol';
4. Kết quả
+----+----------+---------+
| Id | UserName | UserAge |
+----+----------+---------+
| 2 | Carol | 21 |
+----+----------+---------+
Khi nào bắt buộc dùng backtick?
- Tên bảng/cột trùng từ khóa SQL:
SELECT * FROM `order` - Tên chứa khoảng trắng hoặc ký tự đặc biệt:
`full name` - Muốn code rõ ràng, nhất quán (khuyến nghị luôn dùng).
Lưu ý
- Double quote (") có thể dùng như backtick nếu
sql_modekhông chứaANSI_QUOTES. - Không dùng single quote cho tên định danh – sẽ bị hiểu là chuỗi ký tự.