ENUM类型
- ENUM类型也叫作枚举类型,ENUM类型的取值范围需要在定义字段时进行指定。设置字段值时,ENUM类型只允许从成员中选取单个值,不能一次选取多个值。
- 其所需要的存储空间由定义ENUM类型时指定的成员个数决定。
文本字符串类型 | 长度 | 长度范围 | 占用的存储空间 |
---|---|---|---|
ENUM | L | 1 <= L <= 65535 | 1或2个字节 |
- 当ENUM类型包含1~255个成员时,需要1个字节的存储空间;
- 当ENUM类型包含256~65535个成员时,需要2个字节的存储空间。
- ENUM类型的成员个数的上限为65535个。
举例:
创建表如下:
CREATE TABLE test_enum(
season ENUM('春','夏','秋','冬','unknow')
);
添加数据:
INSERT INTO test_enum
VALUES('春'),('秋');
INSERT INTO test_enum
VALUES('UNKNOW');
- 忽略大小写
- 当添加个没有定义的数值时,就会报错
- 当添加多个定义的值,也会报错
- 可以使用索引进行枚举元素的调用,下标从 1 开始
# 允许按照角标的方式获取指定索引位置的枚举值
INSERT INTO test_enum
VALUES('1'),(3);
SELECT * FROM test_enum;
- 没有限制非空的情况下,可以添加
null
值
# 当ENUM类型的字段没有声明为NOT NULL时,插入NULL也是有效的
INSERT INTO test_enum
VALUES(NULL);