当前位置:  数据库>mysql

mysql之set与enum的介绍

    来源: 互联网  发布时间:2014-10-10

    本文导语:  set,enum的数据类型都是字符串类型的对象,其中set最多可以包含64个元素,并且可以任意取到集合中的元素。而enum则是只能取到集合中的木一个元素,最多包含65536个元素,也就是说set是多项选择,enum是单项选择了。这里我们...

set,enum的数据类型都是字符串类型的对象,其中set最多可以包含64个元素,并且可以任意取到集合中的元素。而enum则是只能取到集合中的木一个元素,最多包含65536个元素,也就是说set是多项选择,enum是单项选择了。
这里我们来比较下他们之间相同点和不同点:
代码如下:

mysql> create table db_set(
    -> set1 set('x','y','z') not null,
    -> enum1 enum('one','two','three') not null);
Query OK, 0 rows affected (0.06 sec)
mysql> desc db_set;
+-------+---------------------------+------+-----+---------+-------+
| Field | Type                      | Null | Key | Default | Extra |
+-------+---------------------------+------+-----+---------+-------+
| set1  | set('x','y','z')          | NO   |     | NULL    |       |
| enum1 | enum('one','two','three') | NO   |     | NULL    |       |
+-------+---------------------------+------+-----+---------+-------+
mysql> insert into db_set values(1,3),(1,4),(4,1);
Query OK, 3 rows affected, 1 warning (0.00 sec)
Records: 3  Duplicates: 0  Warnings: 1
mysql> select * from db_set ;
+------+-------+
| set1 | enum1 |
+------+-------+
| x    | three |
| x    |       |
| z    | one   |
+------+-------+
3 rows in set (0.01 sec)
 

这里我们看到了它们的输出结果,我当时也是很不解后来才知道:
set类型中对于超出它能表示的范围的,就用二进制来加去:
Set元素
 十进制
 二进制

‘x'
 1
 0001

‘y'
 2
 0010

‘z'
 4
 0100

enum类型超出自己能表示的范围,就附空值了:
enum元素
 索引

null
 null

‘'
 0

‘one'
 1

‘two'
 2

‘three'
 3

现在大家明白了吧。

    
 
 

您可能感兴趣的文章:

  • VS2012+MySQL+SilverLight5的MVVM开发模式介绍
  • Fedora环境下装MySQL命令方法介绍
  • Mysql索引类型:B-Tree索引介绍
  • 如何解决mysql重装失败方法介绍
  • Mysql Select查询执行流程介绍及实例
  • 请介绍一个支持JSP+MySQL的虚拟主机。要求稳定、速度较快。谢谢!
  • Mysql索引类型:Hash索引介绍及举例说明
  • MySQL运行状况查询方式介绍
  • Mysql服务器登陆,启动,停止等基本操作命令介绍(Linux/Centos环境)
  • 5个常用的MySQL数据库管理工具详细介绍
  • mysql数据库介绍
  • 什么是blob,mysql blob大小配置介绍
  • Mysql中的find_in_set的使用方法介绍
  • MYSQL索引无效和索引有效的详细介绍
  • mytop 使用介绍 mysql实时监控工具
  • php pdo mysql query用法介绍
  • mysql 导入导出数据库以及函数、存储过程的介绍
  • Mysql存储过程和函数区别介绍
  • mysql外键(Foreign Key)介绍和创建外键的方法
  • mysql 初始执行文件的使用介绍
  • MySQL修改数据表存储引擎的3种方法介绍
  • 要慎用mysql的enum字段的原因
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • mysql中如何查看最大连接数(max_connections)和修改最大连接数
  • 在 linux下输入"mysql"命令,进入mysql命令行,但出现“Can't connetc to local MySQL server thuough socket /var/lib/mysql/mysql.sock
  • Mysql查询错误:ERROR:no query specified原因
  • MySQL 重装MySQL后, mysql服务无法启动
  • php安装完成后如何添加mysql扩展
  • 为什么用linux安装盘安装了mysql后,启动mysql,提示找不到mysql.sock文件?
  • mysql中查询当前正在运行的SQL语句并找出mysql中运行慢的sql语句
  • 請教,在redhat linux7.2+mysql 中,系統提示mysql已啟動,網頁卻不能訪問mysql?
  • Myeclipse中自带Tomcat的JDBC连接池配置(mysql和mssql)
  • 求解释: useradd -g mysql mysql -d /home/mysql -s /sbin/nologin
  • MySQL Workbench的下载安装与使用教程
  • 在Linux内安装了Mysql,无法进入Mysql.
  • php中内置的mysql数据库连接驱动mysqlnd简介及mysqlnd的配置安装方式
  • mysql 导入导出数据库以及函数、存储过程的介绍 iis7站长之家
  • MySQL索引基本知识
  • c++中关于#include <mysql/mysql.h>的问题?
  • Mysql设置查询条件(where)查询字段为NULL
  • mysql -u root mysql 怎么解释
  • mysql中字符串和时间互相转换的方法(自动转换及DATE_FORMAT函数)
  • mm.mysql那里可以下载?www.mysql.com根本下载不了。谢谢了
  • java将类序列化并存储到mysql(使用hibernate)
  • MySQL集群 MySQL Cluster


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3