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

Tạo cột NVARCHAR trong MySQL: Thực tế là VARCHAR

NVARCHAR trong MySQL: Chỉ là alias của VARCHAR

MySQL không có kiểu dữ liệu NVARCHAR thực sự như SQL Server. Khi khai báo NVARCHAR(n), MySQL tự động chuyển thành VARCHAR(n) và đưa ra cảnh báo (warning).

1. Tạo bảng với NVARCHAR

mysql> CREATE TABLE DemoTable (
    StudentName NVARCHAR(40),
    StudentCountryName VARCHAR(50)
);

Kết quả: Query OK, 0 rows affected, 1 warning

2. Kiểm tra cấu trúc bảng

mysql> DESC DemoTable;

Kết quả - Cả hai cột đều thành VARCHAR:

+--------------------+-------------+------+-----+---------+-------+
| Field              | Type        | Null | Key | Default | Extra |
+--------------------+-------------+------+-----+---------+-------+
| StudentName        | varchar(40) | YES  |     | NULL    |       |
| StudentCountryName | varchar(50) | YES  |     | NULL    |       |
+--------------------+-------------+------+-----+---------+-------+

3. Chèn và xem dữ liệu

mysql> INSERT INTO DemoTable VALUES ('Chris', 'US'), ('Tom', 'UK'), ('David', 'AUS');
mysql> SELECT * FROM DemoTable;
+-------------+--------------------+
| StudentName | StudentCountryName |
+-------------+--------------------+
| Chris       | US                 |
| Tom         | UK                 |
| David       | AUS                |
+-------------+--------------------+

Giải thích:

  • MySQL lưu trữ Unicode bằng charset utf8mb4 (mặc định từ 8.0)
  • VARCHAR với charset utf8mb4 đã hỗ trợ đầy đủ Unicode (kể cả emoji)
  • Không cần NVARCHAR - chỉ dùng VARCHAR với charset phù hợp
  • Số trong ngoặc (40, 50) là số ký tự tối đa, không phải byte

Khuyến nghị: Luôn dùng VARCHAR(n) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci thay vì NVARCHAR.