Quy tắc cơ bản
- Dấu nháy đơn ': Dùng cho giá trị chuỗi (string literal), ví dụ:
'Chris','2023-01-01' - Backtick `: Dùng cho định danh (identifier): tên bảng, cột, index, alias. Bắt buộc nếu trùng từ khóa hoặc chứa ký tự đặc biệt
- Không dùng dấu: Cho số, NULL, từ khóa SQL, tên cột/bảng không trùng từ khóa
1. Tạo bảng (cột 'key' là từ khóa)
mysql> create table DemoTable1552 (
-> `key` int,
-> Name varchar(20)
-> );
Query OK, 0 rows affected (0.82 sec)
2. Chèn dữ liệu
mysql> insert into DemoTable1552 values(101,'Chris'); Query OK, 1 row affected (0.10 sec) mysql> insert into DemoTable1552 values(102,'David'); Query OK, 1 row affected (0.28 sec) mysql> insert into DemoTable1552 values(103,'Mike'); Query OK, 1 row affected (0.14 sec)
3. Cập nhật đúng cú pháp
mysql> update DemoTable1552 set `key`=100 where Name='Chris'; Query OK, 1 row affected (0.20 sec) Rows matched: 1 Changed: 1 Warnings: 0
`key`: Backtick vì 'key' là từ khóa'Chris': Dấu nháy đơn vì là giá trị chuỗi
4. Kết quả
mysql> select * from DemoTable1552;
+------+-------+ | key | Name | +------+-------+ | 100 | Chris | | 102 | David | | 103 | Mike | +------+-------+ 3 rows in set (0.00 sec)
Sai lầm thường gặp:
-- SAI: Dùng nháy đơn cho tên cột UPDATE table SET 'column' = 'value'; -- Lỗi hoặc so sánh chuỗi -- SAI: Dùng backtick cho giá trị chuỗi UPDATE table SET `column` = `value`; -- Lỗi: 'value' bị hiểu là cột -- ĐÚNG UPDATE `table` SET `column` = 'value';
Thói quen tốt: Luôn dùng backtick cho tất cả định danh trong code sản xuất.