服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|数据库技术|

服务器之家 - 数据库 - Mysql - MySQL数据类型enum 枚举类型

MySQL数据类型enum 枚举类型

2022-11-07 16:15彭世瑜 Mysql

这篇文章主要介绍了MySQL数据类型enum 枚举类型,文章围绕主题展开详细的内容介绍,需要的小伙伴可以参考一下

例如:

?
1
性别 gender 男 女 保密

基本语法:

?
1
enum(数据值 1,数据值 2...);
  • 数据值列表在 255 个以内,使用 1 个字节来存储
  • 数据值列表超过 255,但是小于 65535,使用 2 个字节来存储
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
-- Enum(0=>'男', 1=>'女', 2=>'保密')
create table my_enum(
    gender enum('男', '女', '保密')
)
 
mysql> desc my_enum;
+--------+----------------------------+------+-----+---------+-------+
| Field  | Type                       | Null | Key | Default | Extra |
+--------+----------------------------+------+-----+---------+-------+
| gender | enum('男','女','保密')     | YES  |     | NULL    |       |
+--------+----------------------------+------+-----+---------+-------+
 
-- 插入规范数据
insert into my_enum (gender) values ('男');
insert into my_enum (gender) values ('女');
 
mysql> select * from my_enum;
+--------+
| gender |
+--------+
| 男     |
| 女     |
+--------+

枚举可以规范数据

枚举类型存储的不是真正的字符串,而是存储了下标

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
-- MySQL 会自动类型转换,+、-、\*、/ 会将数据转换成数值,普通字符串转换为数值 0
select gender + 0 from my_enum;
 
mysql> select gender + 0 from my_enum;
+------------+
| gender + 0 |
+------------+
|          1 |
|          2 |
+------------+
 
-- 可以直接插入数值数据
insert into my_enum (gender) values (1);
 
mysql> select * from my_enum;
+--------+
| gender |
+--------+
| 男     |
| 女     |
| 男     |
+--------+

枚举的意义:

  • 规范数据本身,限定只能插入规定的数据项
  • 节省存储空间

到此这篇关于MySQL数据类型enum 枚举类型的文章就介绍到这了,更多相关MySQL enum 枚举内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.51cto.com/u_13567403/5308442

延伸 · 阅读

精彩推荐