通过char与varchar的区别,学习可变长的字符类型

转自http://www.uphtm.com/database/232.html

在mysql教程中char与varchar的区别呢,都是用来存储字符串的,只是他们的保存方式不一样罢了,char有固定的长度,而varchar属于可变长的字符类型。

char与varchar的区别

char (16)长度固定, 如‘www.uphtm.com‘ 存储需要空间 14个字符

varchar(16) 可变长 如‘www.uphtm.com‘ 需要存储空间 15字符,

从上面可以看得出来char 长度是固定的,不管你存储的数据是多少他都会都固定的长度。而varchar则处可变长度但他要在总长度上加1字符,这个用来存储位置。所以实际应用中用户可以根据自己的数据类型来做。

再看看char,与varchar在速度上的区别吧。

mysal>create tabe ab(v varchar(4),c char(4));

query ok ,0 rows affected(0.02 sec)

mysql>insert into abc values(‘ab ‘,‘ab ‘)

query ok ,1 row affected(0.00 sec);

mysql->select concat(v ,‘+‘) ,concat(c ,‘+‘) form abc

ab + | ab+

1rows in set (0.00 sec)

从上面可以看出来,由于某种原因char 固定长度,所以在处理速度上要比varchar快速很多,但是对费存储空间,所以对存储不大,但在速度上有要求的可以使用char类型,反之可以用varchar类型来实例。

注明:

在用char字符类型时内容后面有空间时必须作相关处理,要不就会把空格自动删除。

建意:

myisam 存储引擎 建议使用固定长度,数据列代替可变长度的数据列。

memory存储引擎 目前都使用固定数据行存储,因此无论使用char varchar列都没关系,

innodb 存储引擎 建意使用varchar 类型。

时间: 2024-10-12 06:36:12

通过char与varchar的区别,学习可变长的字符类型的相关文章

mysql中char与varchar的区别分析

原文网址:http://www.jb51.net/article/23575.htm mysql中char与varchar的区别分析 作者: 字体:[增加 减小] 类型:转载 在mysql教程中char与varchar的区别呢,都是用来存储字符串的,只是他们的保存方式不一样罢了,char有固定的长度,而varchar属于可变长的字符类型. char与varchar的区别 char (13)长度固定, 如'www.jb51.net' 存储需要空间 12个字符 varchar(13) 可变长 如'w

char、varchar的区别

char的长度是固定的,varchar的长度是可变的. 例如:char(5)  varchar(5) 当输入char数据时:字符.数字.汉字都是5个,只能输入5个 当输入varchar数据时:字符.数字.汉字也是5个,也只能输入5个 从表面上看char和varchar没什么区别 实际上当char输入1个(字符.数字.汉字)时,5个空间会被占满 而varchar输入1个(字符.数字.汉字)时,只会占一个空间, 之所以说(varchar)变长计算速度慢,是因为变长需要计算字符串长度,而char是不需

char与varchar的区别

char的长度是不可变的,而varchar的长度是可变的,也就是说, 定义一个char[10]和varchar[10],如果存进去的是'csdn', 那么char所占的长度依然为10, 除了字符'csdn'外,后面跟六个空格,而varchar就立马把长度变为4了,取数据的时候, char类型的要用trim()去掉多余的空格,而varchar是不需要的. 1.char与varchar的区别 char的存取数度还是要比varchar要快得多,因为其长度固定,方便程序的存储与查找: 但是char也为此

MYSQL, char 与 varchar的区别!

一.char 和 varchar 的区别: 1)取值范围: char:取值范围:0~255 varchar:取值范围:0~65535 2)空间占用与速度: char: 定长字符串,占用空间大,速度快,一般用于固定长度的表单提交数据存储,例如:身份账号.电话号码.密码等 varchar:变长字符串,占用空间小,速度慢 3)存储与检索数据: char:存储的数据是否达到了给定值得字节,都要占用给定值大小的空间,不足的自动用空格填充,在检索时后面的空格会被自动去裁剪掉. 如:定义  tel char(

char和varchar的区别

在建立数据库表结构的时候,为了给一个String类型的数据定义一个数据库的数据库类型,一般参考的都是char或者varchar,这两种选择有时候让人很纠结,今天想总结一下它们两者的区别,明确一下两者的区别. 首先明确的是,char的长度是不可变的,而varchar的长度是可变的,也就是说,定义一个char[10]和varchar[10],如果存进去的是‘csdn’,那么char所占的长度依然为10,除了字符‘csdn’外,后面跟六个空格,而varchar就立马把长度变为4了,取数据的时候,cha

【面试虐菜】—— Oracle中CHAR、VARCHAR的区别

1.CHAR. CHAR存储定长数据很方便,CHAR字段上的索引效率级高,比如定义char(10),那么不论你存储的数据是否达到了10个字节,都要占去10个字节的空间,不足的自动用空格填充,所以在读取的时候可能要多次用到trim(). 2.VARCHAR. 存储变长数据,但存储效率没有CHAR高.如果一个字段可能的值是不固定长度的,我们只知道它不可能超过10个字符,把它定义为 VARCHAR(10)是最合算的.VARCHAR类型的实际长度是它的值的实际长度+1.为什么“+1”呢?这一个字节用于保

MYSQL中char 与 varchar 的区别

char (13)长度固定,只要最大长度不超过13,其所占存储空间就不会改变,始终是13,不足则用空字符补充. ps:所需存储空间也是由数据库一次性分配,所以在速度上要比varchar快,且不存在碎片的困扰,但由于长度固定也越容易造成存储空间的浪费,所以一般用来存储固定长度的内容.如:MD5哈希值 varchar(13) 可变长, 在不超过最大长度的情况下,其存储空间会根据存储内容的大小来改变. ps:varchar会多用以个字节来存储长度信息,当其更改前后数据的长度时,数据库就需要进行额外的操

详解char和varchar的区别

MySQL中的字符串有两个常用的类型:char和varchar,二者各有优势,下面我们来详细分析一下. 1.char(n)类型 char类型时定长的类型,即当定义的是char(10),输入的是"abc"这三个字符时,它们占的空间一样是10个字节,包括7个空字节.当输入的字符长度超过指定的数时,char会截取超出的字符.而且,当存储char值时,MySQL是自动删除输入字符串末尾的空格. char是适合存储很短的.一般固定长度的字符串.例如,char非常适合存储密码的MD5值,因为这是一

SQL Server中char与varchar数据类型区别

在SQL Server中char类型的长度是不可变的,而varchar的长度是可变的 . 存入数据时: 如果数据类型为char时,当定义一个字段固定长度时,如果存进去数据长度小于char的长度,那么存入数据中数据所占的长度依然为定义字段长度,存入数据格式将变为存入数据加空格: 如果数据类型为varchar时,如果存进去数据长度小于varchar的长度,那么存入数据中数据所占的长度为存入数据长度. 取数据时: 如果数据类型为char时,取出数据需要用trim()去掉多余的空格: 如果数据类型为va