mysql笔记(1)——varchar与char的区别

作者: 傻猫    分类: 弄数据    发布时间: 03-01 20:54    浏览次数: 5752     无留言

用了这么多年数据库,varchar和char都在使用,只知道两者都是字符串类型,两者的长度不一样,其实长度是一样的,最大为255个字符,最大的区别在于char用于固定长度的字符串,varchar用于可变长度的字符串,char数据类型处理速度更快,最高可以超出varchar处理速度的50%。

-----------------------以下内容为MYSQL varchar与char的区别--------------------------------

char:用于表示固定长度的字符串,最多包含255个字符。

car_model char(10);

varchar:用于保存可变长度的字符串,最多包含255个字符。对于那些难以估计确切长度的数据对象来说,使用VARCHAR数据类型更加明智。虽然VARCHAR使用起来较为灵活,但是从整个系统的性能角度来说,CHAR数据类型的处理速度更快,有时甚至可以超出VARCHAR处理速度的50%。

car_model VARCHAR(10);  //最多包含10个字符

varchar类型的占用空间是它的值的实际长度+1,这个字节用于保存实际使用了多大的长度。

-----------------------以下内容为MSSQL varchar、nvarchar与char的区别--------------------------------

字符串数据类型:char、varchar、nvarchar 这三种都是我们常用的数据类型;
varchar与nvarchar比较相似,主要区别在于字符存储字节不同,所以先区分与char的区别:

1、char  固定长度,最长为2000个字符。比如char(50),就算你只存储一个字符,数据库也要为它分配50个字符的空间,这种类型在访问速度上优于varchar,nvarchar,也就是我们常说的空间换时间,经常需要修改更新,且长度不一的字段可以用char。
2、varchar、nvarchar 可变长度字符串。比如varchar(50),你定义的只是最长字符长度为50,实际数据库分配空间根据实际储存字符串长度决定。

3、varchar与nvarchar的区别,主要区别是存储方式不同:
      varchar:按字节存储,比如:varchar(50)可以存储50个英文字母或数字,但只能存储25个汉字,因为汉字是双字节的。
      nvarchar:按字符存储,每字符占2个字节。比如nvarchar(50)不管存储英文字母还是中文汉字都能存储50个字符,存储50个字符时它需要分配100个字节的空间。

     varchar可变长度,最长为8000个字符。适合存储英文数字字符串,如密码。
     nvarchar可变长充,最长为4000个字符。适合存储中英文混合的名称字段,如登录的用户名。

 

添加新评论