MySQL字段之集合(set)枚举(enum)
集合 SET
mysql> create table jihe(f1 set('f','m'));
Query OK, 0 rows affected (0.11 sec)
mysql> desc jihe;
+-------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+-------+
| f1 | set('f','m') | YES | | NULL | |
+-------+--------------+------+-----+---------+-------+
可以插入值 "f" "m"
mysql> insert into jihe values("f");
Query OK, 1 row affected (0.56 sec)
mysql> insert into jihe values("m");
Query OK, 1 row affected (0.19 sec)
可以按照序号输入 注意序号为 1 2 4 8 16 32 ....
mysql> insert into jihe values("1");
Query OK, 1 row affected (0.11 sec)
mysql> insert into jihe values("2");
Query OK, 1 row affected (0.11 sec)
所以如果是3那插入的值为 第一个和第二个
mysql> insert into jihe values("3");
Query OK, 1 row affected (0.17 sec)
+-------+
| f1 |
+-------+
| f |
| m |
| f |
| m |
| f,m |
+-------+
其他字母不能插入
mysql> insert into jihe values("q");
ERROR 1265 (01000): Data truncated for column 'f1' at row 1
插入空
mysql> insert into jihe values("0");
Query OK, 1 row affected (0.11 sec)
超出序号之和不能插入
mysql> insert into jihe values("4");
ERROR 1265 (01000): Data truncated for column 'f1' at row 1
枚举
mysql> create table meiju(f1 enum('1','2','3','4','5','6'));
Query OK, 0 rows affected (0.92 sec)
mysql> desc meiju;
+-------+-------------------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------------------------+------+-----+---------+-------+
| f1 | enum('1','2','3','4','5','6') | YES | | NULL | |
+-------+-------------------------------+------+-----+---------+-------+
mysql> insert into meiju values(2);
mysql> insert into meiju values("2");
mysql> insert into meiju values("6");
序号为 1 2 3 4 5
内容没有序号也没有就不能插入
mysql> insert into meiju values(8);
ERROR 1265 (01000): Data truncated for column 'f1' at row 1
mysql> insert into meiju values("8");
ERROR 1265 (01000): Data truncated for column 'f1' at row 1
mysql> select * from meiju;
+------+
| f1 |
+------+
| 1 |
| 2 |
| 2 |
| 6 |
+------+
改表
mysql> alter table meiju modify f1 enum("a","b","c","d","e","f");
Query OK, 4 rows affected (0.39 sec)
Records: 4 Duplicates: 0 Warnings: 0
可以自动将记录当序号匹配成新的字段值(挺神奇)
mysql> select * from meiju;
+------+
| f1 |
+------+
| a |
| b |
| b |
| f |
+------+
一个记录只能有一个枚举值 不像set 可以累加
mysql> insert into meiju values(7);
ERROR 1265 (01000): Data truncated for column 'f1' at row 1
注意最好输入的是值得时候值要加引号 否则当作序号来处理
当带引号的数字不符合枚举要求时会试一试当作序号合适不合适
如 insert into meiju values("7");
7不在枚举值内 就插入第7个值 如果没有7个值则报错
集合 和 枚举的区别
1 集合可以有64个值 枚举有65535个
2 集合的序号是 1 2 4 8 16 枚举是 1 2 3 4 5 6
3 集合一个字段值可以有好几个值
+-------+
| f1 |
+-------+
| f,m |
+-------+
而枚举只能有一个
MySQL字段之集合(set)枚举(enum)的更多相关文章
- 一次修改mysql字段类型引发的技术探究
说来,mysql数据库是我们项目中用的比较多的库,ORM工具喜欢采用细粒度的MyBatis.这里面就这么引出了两者之间的故事! 首先,说改字段吧,将一个表中的varchar字段改为enum字段.如下: ...
- (转)MySQL字段类型详解
MySQL字段类型详解 原文:http://www.cnblogs.com/100thMountain/p/4692842.html MySQL支持大量的列类型,它可以被分为3类:数字类型.日期和时间 ...
- 企业面试题|最常问的MySQL面试题集合(一)
问题1:char.varchar的区别是什么?varchar是变长而char的长度是固定的.如果你的内容是固定大小的,你会得到更好的性能. 问题2: TRUNCATE和DELETE的区别是什么?DEL ...
- mysql字段数据类型、设置严格模式
表操作 今日内容 1.数据类型 建表的时候,字段都有对应的数据类型 整型 浮点型 字符类型(char与varchar) 日期类型 枚举与集合 2.约束条件 primary key unique key ...
- 常问的MySQL面试题集合
关注「开源Linux」,选择"设为星标" 回复「学习」,有我为您特别筛选的学习资料~ 除了基础题部分,本文还收集整理的MySQL面试题还包括如下知识点或题型: MySQL高性能索引 ...
- MySQL字段类型与操作
MYSQL字段类型与操作 字符编码与配置文件 操作 代码 功能 查看 \s 查看数据库基本信息(用户.字符编码) 配置(配置文件层面) my-default.ini windows下MySQL默认的配 ...
- Mysql字段类型与合理选择
字段类型 数值 MySQL 的数值数据类型可以大致划分为两个类别,一个是整数,另一个是浮点数或小数.许多不同的子类型对这些类别中的每一个都是可用的,每个子类型支持不同大小的数据,并且 MySQL 允许 ...
- 【C#基础概念】枚举 (enum详解)
我们重点来讲解 简单枚举和标志枚举的用法和区别 继承 Object-> ValueType ->Enum Object-> ValueType ->struct 包括int f ...
- MySQL实现嵌套集合模型
MySQL实现嵌套集合模型 译文主要是介绍如何用MySQL来存储嵌套集合数据.在其中会增加一些自己的理解,也会删除掉一些自认为无用的废话. 这篇文章主要讲的是嵌套集合模型,所以邻接表不是本文的重点,简 ...
随机推荐
- ytu 1998:C语言实验——删除指定字符(水题)
C语言实验——删除指定字符 Time Limit: 1 Sec Memory Limit: 64 MBSubmit: 327 Solved: 211[Submit][Status][Web Boa ...
- node.js简单的页面输出
在node.js基本上没有兼容问题(如果你不是从早期的node.js玩起来),而且原生对象又加了这么多扩展,再加上node.js自带的库,每个模块都提供了花样繁多的API,如果还嫌不够,github上 ...
- Sonar+Hudson+Maven构建系列之三:安装Hudson
摘要:其实前面介绍过Sonar,后面Hudson安装就方便了.安装Hudson之前说说Hudson相关的事,现在世面上的有两种与Hudson相关的CI工具,一个是Hudson,一个是Jenkins,这 ...
- Spring的属性编辑器
bean类 import java.util.Date; public class Bean { private Date date; public Date getDate() { return d ...
- HTTP基础03--HTTP报文
报文大致结构: 报文首部: 请求行(请求报文)/状态行(响应报文) 首部字段:请求和响应的各种条件和属性的各类首部: 其它(Cookie) 空行 报文主体(不是必须) 编码提升传输速率: 报文主体和实 ...
- js:数据结构笔记6--字典
Dictionary类的基础是数组不是对象:字典的主要用途是通过键取值: 基本定义: function Dictionary() { this.dataStore = new Array(); thi ...
- 标准事件模型和IE事件模型有哪些区别?请具体解释他们的差异。
通常,事件传送有三个阶段:事件捕获阶段,停留目标阶段,事件冒泡阶段. 1.阶段差异 DOM事件模型包含捕获阶段和冒泡阶段,DOM事件模型可使用e.stopPropagation()来阻止事件流:IE事 ...
- ural 1286. Starship Travel
1286. Starship Travel Time limit: 1.0 secondMemory limit: 64 MB It is well known that a starship equ ...
- 【BZOJ】1015: [JSOI2008]星球大战starwar(并查集)
http://www.lydsy.com/JudgeOnline/problem.php?id=1015 看了题解的囧T_T,一开始以为是求割点,但是想到割点不能统计.... 这题用并查集,思想很巧妙 ...
- hiho#14
军训去了没有打,回来看题跑. T1:hehe 注意X可能是实数233 #include<cstdio> #include<cctype> #include<queue&g ...