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

"name" có phải từ khóa dành riêng trong MySQL?

Trả lời: KHÔNG

name không phải là reserved word trong MySQL. Bạn có thể dùng làm tên bảng, tên cột mà không cần backtick.

Ví dụ chứng minh

Tạo bảng tên "name" với cột "name"

mysql> CREATE TABLE name (
    name VARCHAR(10)
);

mysql> INSERT INTO name VALUES('John');
mysql> INSERT INTO name VALUES('Carol');

mysql> SELECT * FROM name;
+-------+
| name  |
+-------+
| John  |
| Carol |
+-------+

→ Hoạt động bình thường, không cần backtick.

Khi nào CẦN backtick?

Khi tên trùng với Reserved Keywords (từ khóa dành riêng).

Ví dụ: Bảng tên "select"

mysql> CREATE TABLE `select` (
    `select` INT
);

mysql> INSERT INTO `select` VALUES(1);

mysql> SELECT `select` FROM `select`;
+--------+
| select |
+--------+
| 1      |
+--------+

Danh sách một số Reserved Words phổ biến

Best Practice

  1. Luôn dùng backtick cho identifier: `table_name`, `column_name`
  2. Tránh dùng từ khóa SQL làm tên định danh
  3. Dùng naming convention: tbl_users, col_created_at
  4. Kiểm tra danh sách reserved words: MySQL Keywords

Kiểm tra từ khóa

-- Xem từ khóa dành riêng
SHOW KEYWORDS;

-- Hoặc truy vấn INFORMATION_SCHEMA (MySQL 8.0+)
SELECT * FROM INFORMATION_SCHEMA.KEYWORDS WHERE RESERVED = 1;
Từ khóaVí dụ xung đột
SELECTTên cột/bảng
INSERTTên cột/bảng
UPDATETên cột/bảng
DELETETên cột/bảng
WHERETên cột
ORDERTên cột
GROUPTên cột
BYTên cột
INDEXTên index
KEYTên cột
PRIMARYTên cột
REFERENCESTên cột FK
CHECKTên constraint
CONSTRAINTTên constraint
DATABASETên schema
TABLETên bảng
COLUMNTên cột