enum 枚舉類型
例如:
性别 gender 男 女 保密
基本文法
enum(資料值 1,資料值 2...);
- 資料值清單在 255 個以内,使用 1 個位元組來存儲
- 資料值清單超過 255,但是小于 65535,使用 2 個位元組來存儲
-- 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 |
+--------+
| 男 |
| 女 |
+--------+
-- 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 |
+--------+
| 男 |
| 女 |
| 男 |
+--------+
- 規範資料本身,限定隻能插入規定的資料項
- 節省存儲空間