`

mysql varchar char

 
阅读更多
varchar char 的值都是忽略值最后的空格也就是值‘my  ’两个存储,值和‘my','my   '都是相等的
从 CHAR(4)和 VARCHAR(4)列检索的值并不总是相同,因为检索时从 CHAR 列删除了尾部的空格
另外varchar最后要多用一个字节存储记录的长度
TINYTEXT或TINYBLOB2^8-1255TEXT或BLOB2^16-1(64K-1)65535MEDIUMTEXT或MEDIUMBLOB2^24-1(16M-1)16777215LONGBLOB2^32-1(4G-1)4294967295
6.2.3.1CHAR和VARCHAR类型

CHAR和VARCHAR类型是很相似的,但是它们被存储与检索的方式有些不同。

一个CHAR列的长度被固定为你创建表进所声明的长度。长度可以是1和255之间的任一值。(从MySQL3.23之后,CHAR的长度可以是0到255。)当CHAR值被存储时,他们被用空格在右边填补到指定长度。当CHAR值被检索时,尾部的空格被截除。

VARCHAR列的值是变长的字符串。你可以声明一个VARCHAR列在1到255,就像对CHAR列一样。然而,与CHAR相反的,VARCHAR值只以所需的字符数存储,另加一个字节存储记录的长度。值并不被填补;相反的,当被存储时,尾部的空格被截除。(这个截除空格方式不同于ANSISQL规约。)

如果将一个超过列最大长度的值赋给一个CHAR或VARCHAR列,该值将截断以适合它。

下表通过在CHAR(4)和VARCHAR(4)列中存储不同的字符串的结果显示了两种类型列的不同:
值CHAR(4)存储需求VARCHAR(4)存储需求''''4字节''1字节'ab''ab'4字节'ab'3字节'abcd''abcd'4字节'abcd'5字节'abcdefgh''abcd'4字节'abcd'5字节

在各种情况下,CHAR(4)和VARCHAR(4)列的检索值均是一样的,因为在CHAR列上检索值的尾部空格会被截除。

CHAR和VARCHAR列值以省略字母大小写的方式进行排序和比较,除非在表建立时BINARY属性被指定。BINARY属性意味着,该列值根据MySQL服务器正在运行的机器的ASCII表顺序进行字母大小写敏感的方式排序和比较。BINARY并不影响该列如何被存储和检索。

BINARY属性是有粘性的。这就意味着,如果一个被标记为BINARY的列被用于一个表达式中,整个表达式将作为一个BINARY值被比较。

在表创建时,MySQL可能会隐式地改变一个CHAR或VARCHAR列的类型。查看章节6.5.3.1隐式的列定义变化。
6.2.3.2BLOB和TEXT类型

一个BLOB是一个可以保存一可变数量的数据的二进制大对象。四个BLOB类型(TINYBLOB、BLOB、MEDIUMBLOB和LONGBLOB)之间的不同仅仅在于他们能保存值的最大长度不一致。查看章节6.2.6列类型存储需求。

四个TEXT类型(TINYTEXT、TEXT、MEDIUMTEXT和LONGTEXT)对应与四个BLOB类型,并且有相同的最大长度和存储需求。在BLOB和TEXT类型之间的唯一差别就是,对BLOB值是以字母大小写敏感的方式进行排序和比较的,而对TEXT值以忽略字母大小写方式进行排序和比较。换句话说,TEXT是一个忽略字母大小写的BLOB。

如果将一个超过列类型最大长度的值赋给一个
分享到:
评论

相关推荐

    MySQL CHAR和VARCHAR存储、读取时的差别

    你真的知道CHAR和VARCHAR类型在存储和读取时的区别吗? 还是先抛几条结论吧: 1、存储的时候,CHAR总是会补足空格后再存储,不管用户插入数据时尾部有没有包含空格。 2、存储的时候,VARCHAR不会先补足空格后再存储...

    对比MySQL中int、char以及varchar的性能

    在本篇文章中我们给大家分享了关于MySQL中int、char以及varchar的性能对比的相关内容,有兴趣的朋友们学习下。

    MySQL中VARCHAR与CHAR格式数据的区别

    char是一种固定长度的类型,varchar则是一种可变长度的类型,那么他们具体使用过程中有什么区别吗

    char和varchar在mysql中的效率怎样.docx

    char和varchar在mysql中的效率怎样.docx

    MySQL数据库char与varchar的区别分析及使用建议

    在MySQL数据库中,用的最多的字符型数据类型就是Varchar和Char.。这两种数据类型虽然都是用来存放字符型数据,但是无论从结构还是 从数据的保存方式来看,两者相差很大。而且其具体的实现方式,还依赖与存储引擎。我...

    MYSQL中 char 和 varchar的区别

    主要介绍了MYSQL中 char 和 varchar的区别,帮助大家更好的理解和使用MySQL数据库,感兴趣的朋友可以了解下

    Mysql中varchar长度设置方法

    主要介绍了Mysql中varchar长度设置方法的相关资料,本文还给大家带来了valar类型的变化及char()和varchar()的区别介绍,非常不错,具有参考借鉴价值,需要的朋友可以参考下

    mysql中char与varchar的区别分析

    char与varchar的区别 char (13)长度固定, 如’www.jb51.net’ 存储需要空间 12个字符 varchar(13) 可变长 如’www.jb51.net’ 需要存储空间 13字符, 从上面可以看得出来char 长度是固定的,不管你存储的数据是多少...

    MySQL中字段类型char、varchar和text的区别

    在MySQL中,char、varchar和text类型的字段都可以用来存储字符类型的数据,char、varchar都可以指定最大的字符长度,但text不可以。 它们的存储方式和数据的检索方式也都不一样。 数据的检索效率是:char > varchar ...

    MySQL中把varchar类型转为date类型方法详解

    如下表: 先使用str_to_date函数,将其varchar类型转为日期类型,然后从小到大排序 ...SELECT to_char(to_date(m.ma_datetime,'yyyy-MM-dd hh24:mi:ss'), 'yyyyMMdd') FROM my_task m; m.ma_datet

    浅析Oracle中char和varchar2的区别 电脑资料.docx

    浅析Oracle中char和varchar2的区别 电脑资料.docx

    mysql varchar类型求和实例操作

    有的小伙伴在学习数据库的时候,创建表结构的时候不小心把某字段设置成了varchar但是在统计求和的时候就傻眼了,接下来跟着小编学习一下,不用改该列数据类型也能求和的方法吧! 1、打开 数据库连接客户端Navicat ...

    MySQL中CHAR和VARCHAR类型演变和详解

    MySQL数据库的varchar类型在5.0.3以下的版本中的最大长度限制为255,其数据范围可以是0~255

    Mysql varchar大小长度问题介绍

    Mysql4中最大也不过是20个字节,但是Mysql5根据编码不同,存储大小也不同。 1、限制规则 字段的限制在字段定义的时候有以下规则: a) 存储限制 varchar 字段是将实际内容单独存储在聚簇索引之外,内容开头用1到2个字节...

Global site tag (gtag.js) - Google Analytics