Mysql字段类型——字符类型
2016-06-12 10:28
465 查看
Mysql字符类型字段介绍。
- char 与 varchar类型
- CHAR和VARCHAR类型类似,但它们保存和检索的方式不同。它们的最大长度和是否尾部空格被保留等方面也不同。在存储或检索过程中不进行大小写转换。
- CHAR和VARCHAR类型声明的长度表示你想要保存的最大字符数。例如,CHAR(30)可以占用30个字符。
- CHAR列的长度固定为创建表时声明的长度。长度可以为从0到255的任何值。当保存CHAR值时,在它们的右边填充空格以达到指定的长度。当检索到CHAR值时,尾部的空格被删除掉。
- VARCHAR列中的值为可变长字符串。长度可以指定为0到65,535之间的值。(VARCHAR的最大有效长度由整张表所有varhcar列大小和使用的字符集确定。整体最大长度是65,532字节)。
- 同CHAR对比,VARCHAR值保存时只保存需要的字符数,另加一个字节来记录长度(如果列声明的长度超过255,则使用两个字节)。
VARCHAR值保存时不进行填充。当值保存和检索时尾部的空格仍保留,符合标准SQL。
- binary与 varbinary类型
- BINARY和VARBINARY类类似于CHAR和VARCHAR,它们包含字节字符串而不是字符字符串。这说明它们没有字符集,并且排序和比较基于列值字节的数值。
- BINARY和VARBINARY允许的最大长度一样,如同CHAR和VARCHAR,不同的是BINARY和VARBINARY的长度是字节长度而不是字符长度。
-
当保存BINARY值时,在它们右边填充值以达到指定长度。填充值是0x00(零字节)。插入值时在右侧添加0x00 on,并且选择时不删除尾部的字节。比较时所有字节很重要,包括ORDER BY和DISTINCT操作。比较时0x00字节和空格是不同的,0x00<空格。例如:对于一个BINARY(3)列,当插入时 'a' 变为 'a \0'。'a\0'插入时变为'a\0\0'。当选择时两个插入的值均不更改。
- Enum类型
-
ENUM是一个字符串对象,其值来自表创建时在列规定中显式枚举的一列值。在某些情况下,ENUM值也可以为空字符串('')或NULL:
如果你将一个非法值插入ENUM(也就是说,允许的值列之外的字符串),将插入空字符串以作为特殊错误值。该字符串与“普通”空字符串不同,该字符串有数值0。(这与sql_mode有关,在严格模式下,插入允许之外的值错得到一个错误)
- 如果将ENUM列声明为允许NULL,NULL值则为该列的一个有效值,并且 默认值为NULL。如果ENUM列被声明为NOT NULL,其默认值为允许的值列的第1个元素。
来自列规定的允许的值列中的值从1开始编号。
mysql> SELECT * FROM tbl_name WHERE enum_col=0;
- Set类型
-
SET是一个字符串对象,可以有零或多个值,其值来自表创建时规定的允许的一列值。指定包括多个SET成员的SET列值时各成员之间用逗号(‘,’)间隔开。这样SET成员值本身不能包含逗号。
例如,指定为SET('one', 'two') NOT NULL的列可以有下面的任何值:
''
'one'
'two'
'one,two' - SET最多可以有64个不同的成员。
- 当创建表时,SET成员值的尾部空格将自动被删除。
- 当检索时,保存在SET列的值使用列定义中所使用的大小写来显示。请注意可以为SET列分配字符集和 校对规则。对于二进制或大小写敏感的校对规则,当为列分配值时应考虑大小写。
-
set类型定义的值的索引值计算:
在set中声明的位置为n,mysql生成的索引值为: 2^(n-1)
相关文章推荐
- mysql insert 空字符报错 double类型字段插入空字符串时自动转为0
- mysql like 查找字符串(当把这个字符串字段定义成char等字符类型)时,不准确。...
- mysql 字符类型字段查询大小写不区分问题的解决方式
- mysql列字段多类型CASE、WHEN与时间字符 类型date_format格式化使用
- mysql 字段类型总结---字段类型总表
- MySQL的SET字段类型
- MySQL入门--mysql字段的数据类型
- mysql中如何统计某字段里某个字符的个数
- MySQL字段类型详解
- MySQL表结构(含数据类型、字段备注注释)导出成Excel
- 记一次mysql中浮点类型字段引起的问题
- 地理位置经纬度在Mysql中用什么字段类型
- 创建mysql数据表时,字段的int类型长度问题
- mysql-修改字段类型和修改字段名称
- MySQL学习----MySQL数据类型----02MySQL 字符类型
- MySQL所支持的数据类型与表字段约束类型的学习教程
- 【MySQL数据类型3之--字符类型】
- wpf读取mysql字段类型为text的问题
- MySQL 数据(字段)类型
- MySQL学习系列2:数据类型宽度/查看字段长度