ENUM类型也叫作枚举类型,ENUM类型的取值范围需要在定义字段时进行指定。设置字段值时,ENUM类型只允许从成员中选取单个值,不能一次选取多个值。

    其所需要的存储空间由定义ENUM类型时指定的成员个数决定。

    文本字符串类型 长度 长度范围 占用的存储空间
    ENUM L 1 <= L <= 65535 1或2个字节
    • 当ENUM类型包含1~255个成员时,需要1个字节的存储空间;
    • 当ENUM类型包含256~65535个成员时,需要2个字节的存储空间。
    • ENUM类型的成员个数的上限为65535个。

    举例:

    创建表如下:

    1. CREATE TABLE test_enum(
    2. season ENUM('春','夏','秋','冬','unknow')
    3. );

    添加数据:

    1. INSERT INTO test_enum
    2. VALUES('春'),('秋');
    3. # 忽略大小写
    4. INSERT INTO test_enum
    5. VALUES('UNKNOW');
    6. # 允许按照角标的方式获取指定索引位置的枚举值
    7. INSERT INTO test_enum
    8. VALUES('1'),(3);
    9. # Data truncated for column 'season' at row 1
    10. INSERT INTO test_enum
    11. VALUES('ab');
    12. # 当ENUM类型的字段没有声明为NOT NULL时,插入NULL也是有效的
    13. INSERT INTO test_enum
    14. VALUES(NULL);