MySQL字段之集合(set)枚举(enum) (2008-12-23 13:51:23)
标签:it  分类:MySQL

集合 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)的更多相关文章

  1. 一次修改mysql字段类型引发的技术探究

    说来,mysql数据库是我们项目中用的比较多的库,ORM工具喜欢采用细粒度的MyBatis.这里面就这么引出了两者之间的故事! 首先,说改字段吧,将一个表中的varchar字段改为enum字段.如下: ...

  2. (转)MySQL字段类型详解

    MySQL字段类型详解 原文:http://www.cnblogs.com/100thMountain/p/4692842.html MySQL支持大量的列类型,它可以被分为3类:数字类型.日期和时间 ...

  3. 企业面试题|最常问的MySQL面试题集合(一)

    问题1:char.varchar的区别是什么?varchar是变长而char的长度是固定的.如果你的内容是固定大小的,你会得到更好的性能. 问题2: TRUNCATE和DELETE的区别是什么?DEL ...

  4. mysql字段数据类型、设置严格模式

    表操作 今日内容 1.数据类型 建表的时候,字段都有对应的数据类型 整型 浮点型 字符类型(char与varchar) 日期类型 枚举与集合 2.约束条件 primary key unique key ...

  5. 常问的MySQL面试题集合

    关注「开源Linux」,选择"设为星标" 回复「学习」,有我为您特别筛选的学习资料~ 除了基础题部分,本文还收集整理的MySQL面试题还包括如下知识点或题型: MySQL高性能索引 ...

  6. MySQL字段类型与操作

    MYSQL字段类型与操作 字符编码与配置文件 操作 代码 功能 查看 \s 查看数据库基本信息(用户.字符编码) 配置(配置文件层面) my-default.ini windows下MySQL默认的配 ...

  7. Mysql字段类型与合理选择

    字段类型 数值 MySQL 的数值数据类型可以大致划分为两个类别,一个是整数,另一个是浮点数或小数.许多不同的子类型对这些类别中的每一个都是可用的,每个子类型支持不同大小的数据,并且 MySQL 允许 ...

  8. 【C#基础概念】枚举 (enum详解)

    我们重点来讲解 简单枚举和标志枚举的用法和区别 继承 Object-> ValueType ->Enum Object-> ValueType ->struct 包括int f ...

  9. MySQL实现嵌套集合模型

    MySQL实现嵌套集合模型 译文主要是介绍如何用MySQL来存储嵌套集合数据.在其中会增加一些自己的理解,也会删除掉一些自认为无用的废话. 这篇文章主要讲的是嵌套集合模型,所以邻接表不是本文的重点,简 ...

随机推荐

  1. SQL DEVELOPER工具找不到database时的解决

    1.配置SQL DEVELOPER管理工具 这里省略Oracle数据库和PL/SQL Developer的安装步骤,注意在安装PL/SQL Developer软件时,不要安装在Program File ...

  2. node.js简单的页面输出

    在node.js基本上没有兼容问题(如果你不是从早期的node.js玩起来),而且原生对象又加了这么多扩展,再加上node.js自带的库,每个模块都提供了花样繁多的API,如果还嫌不够,github上 ...

  3. Kinect学习笔记(六)——深度数据测量技术及应用

    一.Kinect视角场 1.43°垂直方向和57°水平方向可视范围. 2.视角场常量值定义 属性 描述 Format 获取或设置深度图像格式 MaxDepth 获取最大深度值 MinDepth 获取最 ...

  4. Hadoop的mapreduce开发过程,我遇到的错误集锦(持续更新)

    1.Text包导错了. 将import com.sun.jersey.core.impl.provider.entity.XMLJAXBElementProvider.Text; 改为import o ...

  5. env

    shell环境变量以及set,env,export的区别 原文链接 一.shell环境变量的分类以及set env export的区别: set:显示(设置)shell变量 包括的私有变量以及用户变量 ...

  6. Task 实现多线程的模板

        1.Task多线程简单模板   using System; using System.Collections.Generic; using System.Threading.Tasks;   ...

  7. IOS 获取最新设备型号方法

    1.IOS 获取最新设备型号方法列表最新对照表:http://theiphonewiki.com/wiki/Models方法: #import "sys/utsname.h” struct ...

  8. Quartz Cron 表达式

    Cron 表达式包括以下 7 个字段 格式: [秒] [分] [小时] [日] [月] [周] [年] 说明 是否必填 允许填写的值 允许的通配符 秒 是 - , - * / 分 是 - , - * ...

  9. ccrendertexture to uiimage

    CCRenderTexture *renderTexture; [renderTexture getUIImage];

  10. TYVJ P1094 矩形分割 标签:DP

    做题记录:2016-08-12 21:42:21 背景 YHOI Train#4 Problem 1 描述 出于某些方面的需求,我们要把一块N×M的木板切成一个个1×1的小方块.对于一块木板,我们只能 ...