Giới thiệu
Kiểu dữ liệu ENUM trong MySQL cho phép giới hạn giá trị của một cột trong một tập hợp các giá trị được định nghĩa trước. Điều này giúp đảm bảo tính toàn vẹn dữ liệu và tiết kiệm dung lượng lưu trữ.
Cú pháp tạo bảng với cột ENUM
CREATE TABLE ten_bang (
ten_cot ENUM('gia_tri_1', 'gia_tri_2', 'gia_tri_3', ...)
);
Ví dụ minh họa
Bước 1: Tạo bảng với cột ENUM
CREATE TABLE DemoTable2019 (
StudentMarks INT,
StudentStatus ENUM('First', 'Second', 'Fail')
);
Bước 2: Chèn dữ liệu
INSERT INTO DemoTable2019 VALUES (96, 'First');
INSERT INTO DemoTable2019 VALUES (28, 'Fail');
INSERT INTO DemoTable2019 VALUES (45, 'Second');
Bước 3: Truy vấn dữ liệu
SELECT * FROM DemoTable2019;
Kết quả:
+--------------+---------------+
| StudentMarks | StudentStatus |
+--------------+---------------+
| 96 | First |
| 28 | Fail |
| 45 | Second |
+--------------+---------------+
3 rows in set (0.00 sec)
Bước 4: Truy vấn có điều kiện với cột ENUM
SELECT * FROM DemoTable2019
WHERE StudentMarks = 28
ORDER BY StudentStatus LIMIT 1;
Kết quả:
+--------------+---------------+
| StudentMarks | StudentStatus |
+--------------+---------------+
| 28 | Fail |
+--------------+---------------+
1 row in set (0.00 sec)
Lưu ý: Giá trị ENUM không phân biệt chữ hoa/chữ thường khi so sánh, nhưng MySQL sẽ lưu trữ theo đúng định dạng đã khai báo. Nếu chèn giá trị không nằm trong danh sách ENUM, MySQL sẽ báo lỗi hoặc chèn chuỗi rỗng tùy chế độ SQL.