赞
踩
在MySQL当中,枚举类型ENUM是一个字符串对象,它的值是在表创建的时侯在列规定中显式枚举的一列值。而在某些情况下,ENUM值也可以为空字符串('')或者是NULL。今天小编就通过这篇文章介绍enum以及set这两种枚举类型,枚举类型可以限制某些特定列,如性别列的插入数据。
(一)MySQL怎样创建enum列
(1)枚举的声明语法ENUM(“value1”、“value2”...),与text类型相同,将会占用1到2个字节,,然而,枚举字段仅仅是储存的索引值,在括号当中,每个value都储存在其他的文件中,在索引小于255时就占用1字节,在索引在255到65535之间的时侯,就占用2字节,在理论上能够索引65535个value,事实上就会受数据库单个文件大小的限制。
(2)枚举声明中要避免使用整数,如enum(3,2,1),是因为枚举的索引也是整数,查询的时侯很容易出现错误,储存整数要用int类型,或者是用单引号将成员引起来,作字符串类型储存,如enum("3","2","1")。但是,小编就觉得要避免在索引列用空字符或者是NULL,因为存入一个枚举中不存在的值也会自动被转换成空字符,索引是0。要是枚举中设定空字符成员,再插入空字符会得到正确的索引值,表面上看这两种空字符完全相同,要避免这种情况。与NULL对应的索引是NULL,而其他正常数据的索引是从1开始的,如下例:
(3)枚举列中数据的修改操作:
注意:enum应该要避免空字符成员,如下例:
(二)MySQL怎么创建set列
与enum相似,set也能声明多个有效值,在set列当中,插入数据的时侯还能选择多个有效值,set类型占用字节的大小不固定,它可以占用1,2,3,4或者是8个字节,即使set有最大8个字节的索引,但事实上储存的value还会受MySQL最大文件的限制。如下例:
总结:我们要知道,要是把非法值插入ENUM,即允许的值列之外的字符串中,把插入空字符串作为特殊错误值,那这个字符串与“普通”空字符串不同,它会有数值值0。在mysql的数据类型当中,枚举型还是较为常见的,大家需要好好的掌握哦。希望这篇文章可以使大家详细的了解枚举型的内容。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。