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 参考文献

[数据库/MySQL]数据类型:enum 枚举类型的更多相关文章

  1. 【hibernate postgresql】注解@TypeDef/@Enumerated/数据库字段gender为枚举类型,从前台接受到实体后进行保存报错:org.postgresql.util.PSQLException: ERROR: column "gender" is of type gender but expression is of type character varying

    数据库字段gender为枚举类型,从前台接受到实体后进行保存报错:org.postgresql.util.PSQLException: ERROR: column "gender" ...

  2. Python中模拟enum枚举类型的5种方法分享

    这篇文章主要介绍了Python中模拟enum枚举类型的5种方法分享,本文直接给出实现代码,需要的朋友可以参考下   以下几种方法来模拟enum:(感觉方法一简单实用) 复制代码代码如下: # way1 ...

  3. enum枚举类型的定义

    enum枚举类型的定义方式与某种用法 #include <iostream> using namespace std; int main() { enum TOT{ zero, one, ...

  4. 数据库——MySQL——数据类型

    详细的看后面给的链接,我只是挑了一部分:http://www.runoob.com/mysql/mysql-data-types.html 在之前说了MySQL的存储引擎.它决定了表的类型,而表内存放 ...

  5. 关系型数据库MySql 数据类型与约束

    MySql数据库 :数据类型与约束 注意 :  在创建数据表的时候,需要对数据表中的字段设置 数据类型和约束, 便于检测用户输入的数据是否正确有效. 1 数据类型 数据类型的选用原则 : 够用就行,尽 ...

  6. Mysql 数据类型、约束类型

    mysql数据类型 MySQL中定义数据字段的类型对你数据库的优化是非常重要的. MySQL支持多种类型,大致可以分为三类:数值.日期/时间和字符串(字符)类型.   数值类型 MySQL支持所有标准 ...

  7. 数据库-mysql数据类型

    MySQL 数据类型 MySQL中定义数据字段的类型对你数据库的优化是非常重要的. MySQL支持多种类型,大致可以分为三类:数值.日期/时间和字符串(字符)类型. 数值类型 MySQL支持所有标准S ...

  8. C语言--enum,typedef enum 枚举类型详解

    原文:http://z515256164.blog.163.com/blog/static/32443029201192182854300/ 有改动 C语言详解 - 枚举类型 注:以下全部代码的执行环 ...

  9. 1.0 基础、标示符、常量、数据类型(enum 枚举,struct 结构体)、操作符、循环、数组

    一.程序 现实生活中,程序是指完成某些事务的一种既定方法和过程,可以把程序看成是一系列动作执行过程的描述. 在计算机世界,程序是指令,即为了让计算机执行某些操作或解决某个问题而编写的一系列有序指令的集 ...

  10. Enum枚举类型实战总结,保证有用!

    一般在我们开发时如果能使用枚举罗列的,一般都会定义一个枚举类型.将枚举类型作为方法的参数,可以方便的进行调用,给我们带来不少的遍历,当然有时候它还不如直接用一个int类型带来,带来一定灵活性.但只要能 ...

随机推荐

  1. SVN报错:database is locked

    https://blog.csdn.net/k7arm/article/details/81168416 https://www.jianshu.com/p/aa9c67fcc407

  2. mybatis插入批量数据

    1 for循环重复调用dao,消耗大   2 sql语句编写插入多条,只用于少数   3 mybatis的batch插入   @Test public void testInsertBatch2() ...

  3. 龙中华著《Spring Boot实战派》读书笔记之基础篇

    第四章 Spring Boot 基础 4.1 了解Spring Boot 项目结构 src/main/java //入口类,等 src/main/resources //静态文件和配置文件 src/t ...

  4. 【.NET】Swagger 允许接口重名

    问题: Swagger Failed to load API definition. 相信用过swagger的小伙伴 一定经历过这样的错误,问题点很简单,是接口重名了. 我百度了一下,找不到答案. 谷 ...

  5. STL练习-排列2

    Ray又对数字的列产生了兴趣: 现有四张卡片,用这四张卡片能排列出很多不同的4位数,要求按从小到大的顺序输出这些4位数. Input 每组数据占一行,代表四张卡片上的数字(0<=数字<=9 ...

  6. Javaheima21

    Java 学习内容 XML XML解析技术 XPath 设计模式 在有些业务场景下,存储数据或者传输数据给别人的时候,数据需要满足优点的规范进行组织 XML文件存储的数据需要提取出来 如何方便的在XM ...

  7. PT的常用命令

    归纳常用的PT命令,便于工作中应用. 1. 报时序的命令 report_timing -from A -to  [get_clocks {clkA}]  -delay_type min report_ ...

  8. MSVC-用于其他IDE的手工环境配置,手工提取

    ​ 最近因为在使用Code::Blocks编程,遇到了MSVC编译的库,不愿意换VS,所以手工配置了MSVC路径.CB是有点老了,不像现在新的IDE都是自动搜索的,而且我又不会批处理orz. 这里面可 ...

  9. 02 docker的基本用法

    本章内容 1.OCI 2.docker核心组件--Cgroup与runC 3.docker的架构 4.docker的基本操作 5.安装docker环境 6.创建第一个容器 6.docker容器的状态变 ...

  10. GoAccess - 可视化 Web 日志分析工具

    Centos安装: yum -y install goaccess 使用goaccess命令生成HTML文件 LANG="en_US.UTF-8" bash -c 'goacces ...