[数据库] MySQL之数据类型:enum 枚举类型

1 需求描述

  • 场景

性别(gender) :男 / 女 / 保密

2 基本语法

enum(枚举值 1,枚举值 2...);
  • 枚举值列表在 255 个以内,使用 1 个字节来存储
  • 枚举值列表超过 255,但是小于 65535,使用 2 个字节来存储
-- Enum(0=>'男', 1=>'女', 2=>'保密')
create table tb_demo(
    gender enum('男', '女', '保密')
)
 
mysql> desc tb_demo;
+--------+----------------------------+------+-----+---------+-------+
| Field  | Type                       | Null | Key | Default | Extra |
+--------+----------------------------+------+-----+---------+-------+
| gender | enum('男','女','保密')     | YES  |     | NULL    |       |
+--------+----------------------------+------+-----+---------+-------+
 
-- 插入规范数据
insert into tb_demo(gender) values ('男');
insert into tb_demo(gender) values ('女');
 
mysql> select * from tb_demo;
+--------+
| gender |
+--------+
| 男     |
| 女     |
+--------+

3 枚举类型的作用

枚举的意义:

  • 规范/约束数据本身,限定只能插入规定的数据项

  • 节省存储空间。枚举类型存储的不是真正的字符串,而是存储了下标

-- MySQL 会自动类型转换,+、-、\*、/ 会将数据转换成数值,普通字符串转换为数值 0
select gender + 0 from tb_demo;
 
mysql> select gender + 0 from tb_demo;
+------------+
| gender + 0 |
+------------+
|          1 |
|          2 |
+------------+
 
-- 可直接插入数值数据
insert into tb_demo(gender) values (1);
 
mysql> select * from tb_demo;
+--------+
| gender |
+--------+
| 男     |
| 女     |
| 男     |
+--------+

X 参考文献

posted @ 2022-09-12 11:36  千千寰宇  阅读(317)  评论(0编辑  收藏  举报