枚举类型,enum
一般来说就是单选,在定义枚举的时候列出所有的可能性;
代码如下
- create table type_enum(
- gender enum('male','remale','serect'),
- );
- insert into type_enum values ('remale');
![](https://i-blog.csdnimg.cn/blog_migrate/cde4f5c42e26f42a9527b8b0c811723b.png)
在处理时,类似字符串型进行操作!
意义在于:
1, 限定值的可能性!
![](https://i-blog.csdnimg.cn/blog_migrate/ae0ebe31c976aa9d12d58c507299d321.png)
2, 速度快,比普通的字符串速度快!
原因是枚举型 是利用 整数进行管理的,能够2个字节进行管理!
![](https://i-blog.csdnimg.cn/blog_migrate/95ff63bbcaedb232fcf16d58c0815bdc.png)
每个值,都是一个整数标识,从第一个选项开始为1,逐一递增!
管理时整数的形式,速度比字符串快!
![](https://i-blog.csdnimg.cn/blog_migrate/836994785ecdc4041a5580cc2d75832c.png)
一共有2 个字节,0-65535,因此可以有 65535个选项可以使用!、
集合 set 不定想项选
类似于 enum枚举,在定义时,也需要指定其已有值!
![](https://i-blog.csdnimg.cn/blog_migrate/5a6a4e89c54436a199447317c401e180.png)
与字符串相比,优势是:
1, 也是采用 整数进行管理的!采用位运算,从第一位开始为1,逐一x2!
![](https://i-blog.csdnimg.cn/blog_migrate/1f8885b25c04ac27172542e0d241fd89.png)
2, 每个集合类型8个字节,64位,因此可以表示64个元素!
注意:站在 mysql的角度,尽量多用枚举和集合!
但是站在php操作mysql的角度,尽量少用!(兼容性差)