下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

关于mysql数据类型当中的枚举型的详解

作者:课课家教育     来源: http://www.kokojia.com点击数:1965发布时间: 2019-03-08 09:42:29

标签: mysqlmysql教程mysql数据库

  在MySQL当中,枚举类型ENUM是一个字符串对象,它的值是在表创建的时侯在列规定中显式枚举的一列值。而在某些情况下,ENUM值也可以为空字符串('')或者是NULL。今天小编就通过这篇文章介绍enum以及set这两种枚举类型,枚举类型可以限制某些特定列,如性别列的插入数据。

  (一)MySQL怎样创建enum列

  (1)枚举的声明语法ENUM(“value1”、“value2”...),与text类型相同,将会占用1到2个字节,,然而,枚举字段仅仅是储存的索引值,在括号当中,每个value都储存在其他的文件中,在索引小于255时就占用1字节,在索引在255到65535之间的时侯,就占用2字节,在理论上能够索引65535个value,事实上就会受数据库单个文件大小的限制。

mysql数据类型中的枚举型_mysql_mysql教程_mysql数据库_课课家

  (2)枚举声明中要避免使用整数,如enum(3,2,1),是因为枚举的索引也是整数,查询的时侯很容易出现错误,储存整数要用int类型,或者是用单引号将成员引起来,作字符串类型储存,如enum("3","2","1")。但是,小编就觉得要避免在索引列用空字符或者是NULL,因为存入一个枚举中不存在的值也会自动被转换成空字符,索引是0。要是枚举中设定空字符成员,再插入空字符会得到正确的索引值,表面上看这两种空字符完全相同,要避免这种情况。与NULL对应的索引是NULL,而其他正常数据的索引是从1开始的,如下例:

MySQL怎样创建enum列

MySQL怎样创建enum列

  (3)枚举列中数据的修改操作:

枚举列中数据的修改操作

  注意:enum应该要避免空字符成员,如下例:

enum应该要避免空字符成员

  (二)MySQL怎么创建set列

  与enum相似,set也能声明多个有效值,在set列当中,插入数据的时侯还能选择多个有效值,set类型占用字节的大小不固定,它可以占用1,2,3,4或者是8个字节,即使set有最大8个字节的索引,但事实上储存的value还会受MySQL最大文件的限制。如下例:

MySQL怎么创建set列

  总结:我们要知道,要是把非法值插入ENUM,即允许的值列之外的字符串中,把插入空字符串作为特殊错误值,那这个字符串与“普通”空字符串不同,它会有数值值0。在mysql的数据类型当中,枚举型还是较为常见的,大家需要好好的掌握哦。希望这篇文章可以使大家详细的了解枚举型的内容。

赞(0)
踩(0)
分享到:
华为认证网络工程师 HCIE直播课视频教程