zoukankan      html  css  js  c++  java
  • MySQL中的枚举的用法

    枚举:enum,实现将所有可能出现的结果都设计好,实际上存储的数据必须是规定好的数据中的一个。

    枚举的使用方式

    定义:enum(可能出现的元素列表); //如enum(‘男’,‘女’)

    使用:存储数据,只能存储上面定义好的数据

    意义在于:

    1, 限定值的可能性!

    2, 速度快,比普通的字符串速度快!

    原因是枚举型 是利用 整数进行管理的,能够2个字节进行管理!

    每个值,都是一个整数标识,从第一个选项开始为1,逐一递增!

    管理时整数的形式,速度比字符串快!

    一共有2 个字节,0-65535,因此可以有 65535个选项可以使用!、

    -- 创建枚举表

    create table my_enum(

      gender enum('男','女','保密')

    )charset utf8;

    作用之一:规范数据格式,数据只能是规定的数据中的其中一个

    作用之二:节省存储空间(枚举通常有一个别名:单选框),枚举实际存储的是数值,而不是字符串本身

    在mysql中,系统也是自动转换格式的,而且基本与PHP一样(尤其是字符串转数字)

    -- 插入数据

    -- 有效数据

    insert into my_enum values('男'),('保密'); 

    -- 数值插入枚举元素

    insert into my_enum values (1),(2);

    原理在下面

    -- 错误数据

    insert into my_enum values('male'); -- 错误:没有该元素

    证明字段存储的数据是数值:将数据去除了 +0 就可以判断出原来的数据存储的到底是字符串还是数值,如果是字符串最终结果永远是0,否则是其他值

    -- 将字段结果取出来进行+0运算

    select gender + 0,gender from my_enum;

    找出了枚举元素的实际规律:按照元素出现的顺序,从1开始编号

    枚举原理:枚举在进行数据规范的时候(定义的时候),系统会自动建立一个数字与枚举元素的对应关系(关系放到日志中);然后在进行数据插入的时候,系统自动将字符转换成对应的数字存储,然后在进行数据提取的时候,系统就自动将数字转换成字符串显示。

    因为我枚举实际存储的是数值,所以可以直接插入数值

    注意:站在 mysql的角度,尽量多用集合!

    但是站在php操作mysql的角度,尽量少用!(兼容性差)

    --------------------- 
    版权声明:本文为CSDN博主「文艺小卿年」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/qq_41725214/article/details/79771842

  • 相关阅读:
    python验证码识别——前处理
    因为应用程序正在发送一个输入同步呼叫,所以无法执行传出的呼叫 解决方法
    Basic Authentication Authentication with Python(翻译草稿)
    闭包初探
    为朋友写的一个投票功能的提交代码
    Ulipad中Script的编写
    SharePoint 2010 Error occurred in deployment step 'Activate Features': Feature Id 解决方法
    SharePoint 2010 传入电子邮件
    SharePoint2010 InfoPath2010 该表单无法显示 Server State Service配置不当 解决方法
    SharePoint 2010 客户端不支持使用windows资源管理器打开此列表 解决方法
  • 原文地址:https://www.cnblogs.com/jiayu123/p/11333809.html
Copyright © 2011-2022 走看看