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中的枚举类型及其相关操作。
领取专属 10元无门槛券
手把手带您无忧上云