关于 mysql 枚举类型(enum) 的说明


前言

ENUM中文名称叫枚举类型,它的值范围需要在创建表时通过枚举方式显式指定,对1~255个成员的枚举需要1个字节存储;对于255~65535个成员,需要2个字节存储。最多允许有65535个成员。下面往测试表t中插入几条记录来看看ENUM的使用方法

MySQL版本:5.7

# 表结构说明:

CREATE TABLE `test_gender` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `gender` enum('M','F') DEFAULT NULL COMMENT '性别',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4;


一、插入测试

# 这里分别插入四个不同的状态值
# M 为正常插入、‘1,2’测试 string 类型的索引下标、1 测试 int 类型的索引、f 测试小写写入
insert INTO test_gender (gender) VALUES ('M'),('1'),('2'),(1),('f')

插入结果如下:
插入结果
可以看出,enum类型插入时并不区分大小写。并且采用下标的形式插入时类型限制并不严格(string 、int 类型均可)

二、查询测试

  • 正常查询
select * from test_gender where gender='M'

在这里插入图片描述
结果正常

  • 小写查询
select * from test_gender where gender='m'

在这里插入图片描述
查询出大写数据

  • int 类型索引下标查询
select * from test_gender where gender=1

在这里插入图片描述
可查询出结果

  • string 类型索引下标查询
 select * from test_gender where gender='1'

在这里插入图片描述
查询结果为空
我们从上面的结果可以看出:

  • 查询不区分大小写
  • 使用索引下标查询可以只能使用 int 类型,string 类型会导致失效
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值