天天看點

MySQL資料庫(11):資料類型-enum 枚舉類型enum 枚舉類型

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 |
+--------+
| 男     |
| 女     |
| 男     |
+--------+

           
  • 規範資料本身,限定隻能插入規定的資料項
  • 節省存儲空間