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

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

(一)MySQL怎样创建enum列

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

fbc35dfa962b183219dc86c391bb37e6.png

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

60c32e618ddef84e89172e1f565ca1db.png

9e5b7fbcb988a558acf075166979105c.png

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

892dc8685bd446e9b3bdc13a9205438d.png

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

15bb1381870b036735a5384749d482dc.png

(二)MySQL怎么创建set列

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

2f757ad405a9a7713e13dca784f40a47.png

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值