MySQL中的枚举类型(ENUM)是一种字符串对象,其值是从一个预定义的列表中选择的。枚举类型的值在数据库中以整数形式存储,但显示时使用的是定义时的字符串值。枚举类型的定义格式如下:
CREATE TABLE table_name (
column_name ENUM('value1', 'value2', 'value3', ...)
);MySQL中的枚举类型只有ENUM一种,没有SET类型的概念。
枚举类型适用于以下场景:
SELECT column_name + 0 AS enum_value, column_name AS enum_string
FROM table_name;INSERT INTO table_name (column_name) VALUES ('value1');SHOW COLUMNS FROM table_name LIKE 'column_name';ALTER TABLE table_name MODIFY column_name ENUM('value1', 'value2', 'value3', '') DEFAULT NULL;假设有一个表users,其中有一个枚举类型的列gender:
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255),
gender ENUM('male', 'female', 'unknown')
);插入数据:
INSERT INTO users (name, gender) VALUES ('Alice', 'female');
INSERT INTO users (name, gender) VALUES ('Bob', 'male');
INSERT INTO users (name, gender) VALUES ('Charlie', 'unknown');查询数据并转换为字符串:
SELECT id, name, CASE gender WHEN 'male' THEN '男' WHEN 'female' THEN '女' WHEN 'unknown' THEN '未知' END AS gender_str
FROM users;通过以上信息,您可以更好地理解MySQL中的枚举类型及其相关操作。