zoukankan      html  css  js  c++  java
  • set&enum小结(database)

    今天发现mysql中有set这种数据类型,工作的业务中也使用到了。网上查阅资料后,小结一下

    先总结一下两者的分别

    set和enum类似表单中的多选和单选,set和enum在数据库内部是用整数表示的,显示给我们看的可以是字符串(避免使用数字字符串)

    api中对两种类型的解释如下

    两种类型的数据个数有限制,再根据2^64=65536,所以推测跟计算机的硬件有关系,目前计算机有64位,还没有128位的缘故

    set中的多选怎么实现的呢?自己做了些测试,如下

    新建一个表db_set,拥有set以及enum两个列对比
    DROP TABLE if EXISTS db_set;
    create table db_set(
    id int AUTO_INCREMENT primary
    set1 set('x','y','z') not null,
    enum1 enum('one','two','three') not null);
     
    以整数形式插入几条数据,由于两种类型的数据在内部是以整数形式表示的,所以插入数值型值
    insert into db_set(set1, enum1) values(1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10),(11,11);
     
    查询表中的数据
    SELECT * FROM db_set;
     
    结果如下

    到这里大家应该知道了,set是通过二进制的位进行映射的,这也解释了为什么set只支持最多64个值(空值不算)的缘故。

     
  • 相关阅读:
    关于软件测试的浅谈
    软件测试中的压力测试和性能测试
    白盒测试一些方法
    浅谈黑盒测试
    关于判断是否为闰年以及异常处理问题
    软件测试用例
    等价类划分
    关于白盒测试
    【软件测试】软件测试方法划分
    【软件测试】灰盒测试
  • 原文地址:https://www.cnblogs.com/peter-yan/p/6868544.html
Copyright © 2011-2022 走看看