`

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中int、char以及varchar的性能

    总的来说,MySQL中的int、char和varchar在性能上的差异并非显著到足以成为决定性因素。开发者应根据实际需求,如数据的类型、大小、预期的增长、是否需要索引以及对可读性和可维护性的要求,来综合考虑选择哪种数据...

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

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

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

    在MySQL数据库中,CHAR和VARCHAR是两种常见的字符串数据类型,它们在存储和处理方式上有着显著的区别,这对于数据库设计和性能优化至关重要。 首先,CHAR是一种固定长度的数据类型。这意味着无论你存储的实际数据有...

    mysql实现char类型主键自增长

    本文将深入探讨如何在MySQL中利用触发器实现CHAR类型主键的自增长功能,这将为我们提供一种灵活且独特的主键生成策略。 ### MySQL中CHAR类型主键自增长的原理 在传统的数据库设计中,我们通常使用整型数据类型作为...

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

    在MySQL数据库中,`CHAR`和`VARCHAR`是两种常见的字符串数据类型,它们在存储和处理数据时具有不同的效率特点。理解这两种类型的差异对于优化数据库性能至关重要。 `CHAR`是一种固定长度的数据类型,这意味着无论...

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

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

    Mysql中varchar长度设置方法

    在MySQL中,`VARCHAR`是一种用于存储可变长度字符串的数据类型,它的长度设置是非常关键的,因为它直接影响到存储空间的使用效率和数据的正确性。`VARCHAR`的长度设置方法是通过在类型名后面括号内指定最大字符数,...

    MYSQL中 char 和 varchar的区别

    在MySQL数据库中,CHAR和VARCHAR是两种常用的字符串数据类型,它们在存储和处理字符串时有显著的区别。理解这些差异对于优化数据库性能和节省存储空间至关重要。 首先,CHAR和VARCHAR都是预定义长度的数据类型,但...

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

    Oracle 中 char 和 varchar2 的区别 Oracle 中 char 和 varchar2 是两种常用的字符串数据类型,它们之间的区别是很多开发者经常忽视的。下面我们将详细分析 Oracle 中 char 和 varchar2 的区别。 首先,char 是定...

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

    MySQL中的CHAR和VARCHAR是两种常见的字符串数据类型,用于存储文本数据。它们在数据库设计和优化中扮演着重要的角色,理解它们的区别和使用场景至关重要。 首先,让我们深入了解一下两者的演变。在MySQL 5.0.3之前...

    Mysql varchar大小长度问题介绍

    MySQL中的VARCHAR类型是一种可变长度的字符串数据类型,它在存储空间上相比固定长度的CHAR类型更为节省。本文将深入探讨VARCHAR类型的大小长度问题及其在不同版本和编码下的限制。 首先,VARCHAR字段的长度限制主要...

    mysql中char与varchar的区别分析

    在MySQL数据库中,字符类型`CHAR`和`VARCHAR`是两种常见的用于存储文本数据的字段类型,它们在存储方式和空间效率上有着显著的区别。 首先,`CHAR`是一种固定长度的字符类型。这意味着,无论你存储的数据实际长度是...

    VARCHAR与CHAR字符型数据的差异.docx

    CHAR和VARCHAR是两种常见的字符型数据类型,它们各自有着独特的特点和适用场景。 首先,CHAR是固定长度的,这意味着不论实际存储的数据有多长,数据库都会预留指定长度的空间。例如,CHAR(255)会为每个值预留255个...

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

    在MySQL和Oracle这两个广泛使用的数据库管理系统中,我们经常遇到需要将字符串(varchar)类型的日期转换为日期(date)类型的情况。这通常是因为原始数据以字符串格式存储,而我们需要对这些日期进行比较、排序或...

    mysql varchar类型求和实例操作

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

    MySQL动态修改varchar长度的方法

    在MySQL中,`VARCHAR`类型用于存储可变长度的字符串,它相较于`CHAR`类型更加节省空间,因为它只存储实际输入的数据长度。然而,在数据库设计过程中,有时可能会遇到需要动态修改`VARCHAR`字段长度的情况,这通常是...

Global site tag (gtag.js) - Google Analytics