微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

mysql中enum类型理解

ENUM是枚举类型,它虽然只能保存一个值,却能够处理多达65535个预定义的值。下面是我写的一个MysqL语句

CREATE TABLE student(
id INT(11) PRIMARY key auto_increment,
name VARCHAR(10) not null,
sex ENUM('boy','girl','secret') DEFAULT 'secret'
)ENGINE=INNODB

如果sex列中插入了除bor,girl,secret之外的其它字符,则视为空字符串

 

1 每个枚举值都有一个索引:

  • 列出的元素被分配从1开始的索引值。
  • 空字符串作为错误值的索引值为0。可以使用select语句找出那些被指定无效枚举值的数据行。
SELECT * FROM tbl_name WHERE enum_col=0;
  • NULL的索引为NULL。
  • 这里的索引只是指出枚举表里该元素的位置,和表索引不同。

2 最多可以有65535个不同的元素值(实际限制小于3000)。 
3 枚举值不能是0或空字符串(虽然存在特殊情况) 

4.enum在底层的存储方式是以整型进行存储的,比如这样的字段sex enum('male' , 'female' , 'both' , 'unkNow')在查询时where sex='male'和where sex=1是等效的

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐