请选择 进入手机版 | 继续访问电脑版

MySQL中的数据类型之枚举(enum)

[复制链接]
查看1570 | 回复0 | 2020-9-29 10:34 | 显示全部楼层 |阅读模式
从集合中选择一个值作为数据(单选)
  1. mysql> create table stu12(
  2.     -> name varchar(20),
  3.     -> sex enum('男','女','保密') # 枚举
  4.     -> );
  5. Query OK, 0 rows affected (0.06 sec)

  6. -- 插入的枚举值只能是枚举中提供的选项
  7. mysql> insert into stu12 values ('tom','男');
  8. Query OK, 1 row affected (0.00 sec)
  9. -- 报错,只能插入男、女、保密
  10. mysql> insert into stu12 values ('tom','不告诉你');
  11. ERROR 1265 (01000): Data truncated for column 'sex' at row 1
复制代码
枚举值是通过整形数字来管理的,第一个值是1,第二个值是2,以此类推,枚举值在数据库存储的是整形数字。
  1. mysql> insert into stu12 values ('berry',2);   -- 插入数字
  2. Query OK, 1 row affected (0.00 sec)

  3. mysql> select * from stu12;
  4. +-------+------+
  5. | name  | sex  |
  6. +-------+------+
  7. | tom   | 男     |
  8. | berry | 女    |
  9. +-------+------+

  10. mysql> select * from stu12 where sex=2;   -- 2表示第二个枚举值
  11. +-------+------+
  12. | name  | sex  |
  13. +-------+------+
  14. | berry | 女    |
  15. +-------+------+
  16. 1 row in set (0.00 sec)
复制代码
枚举优点:
  1. (1)、限制值
  2. (2)、节省空间
  3. (3)、运行速度快(整形比字符串运行速度快)
复制代码
思考:已知枚举占用两个字节,所以最多可以有多少个枚举值?
答:2字节=16位,2^16^=65536,范围是(0-65535),由于枚举从1开始,所以枚举值最多有65535个

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

UID
1
贡献
387
丢币
38902
主题
4607
回帖
116
注册时间
2018-9-25
最后登录
2024-3-24