×

varchar var

varchar(varchar和varchar2的区别)

admin admin 发表于2023-11-16 07:34:37 浏览54 评论0

抢沙发发表评论

其实varchar的问题并不复杂,但是又很多的朋友都不太了解varchar和varchar2的区别,因此呢,今天小编就来为大家分享varchar的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!

本文目录

varchar和varchar2的区别

      varchar和varchar2的区别是什么呢?发现不少人对这个问题感兴趣,今天我们就来看看他们的区别吧。      varchar是标准sql里的,varchar2是oracle所提供的独有的数据类型。      varchar对于汉字占两个字节,对于数字,英文字符是一个字节,占的内存小,varchar2一般情况下把所有字符都占两字节处理。具体要看数据库使用的字符集,比如GBK,汉字就会占两个字节,英文1个,如果是UTF-8,汉字一般占3个字节,英文还是1个。      varchar对空串不处理,varchar2将空串当做null来处理。varchar存放固定长度的字符串,最大长度是2000,varchar2是存放可变长度的字符串,最大长度是4000。如果是要更换不同的数据库,例如mysql,那么就用varchar,如果就用oracle,那么用varchar2比较好一点。      看完这篇文章,有没有解答你心中的疑惑呢?

数据库char,varchar,nchar,nvarchar类型分别有什么区别

数据库char,varchar,nchar,nvarchar类型区别为:长度不同、字节不同、空格不同。

一、长度不同

1、char类型:char类型的长度固定,占用更多的存储空间。

2、varchar类型:varchar类型的长度不固定,占用更少的存储空间。

3、nchar类型:nchar类型的长度固定,占用更多的存储空间。

4、nvarchar类型:nvarchar类型的长度不固定,占用更少的存储空间。

二、字节不同

1、char类型:char类型所有的字符使用一个字节表示。

2、varchar类型:varchar类型所有的字符使用一个字节表示。

3、nchar类型:nchar类型所有的字符使用两个字节表示。

4、nvarchar类型:nvarchar类型所有的字符使用两个字节表示。

三、空格不同

1、char类型:char类型保存的时候会去掉字符串末尾的空格。

2、varchar类型:varchar类型保存的时候不会去掉字符串末尾的空格。

3、nchar类型:nchar类型保存的时候会去掉字符串末尾的空格。

4、nvarchar类型:nvarchar类型保存的时候不会去掉字符串末尾的空格。

char和varchar的区别

一、用途不同

1、char:char用于C或C++中定义字符型变量。

2、varchar:VARCHAR(M)是一种比CHAR更加灵活的数据类型,同样用于表示字符数据。

二、特点不同

1、char:char在标准中不指定为signed或unsigned,编译器可以编译为带符号的,也可以编译为不带符号的。

2、varchar:VARCHAR可以保存可变长度的字符串。其中M代表该数据类型所允许保存的字符串的最大长度,只要长度小于该最大值的字符串都可以被保存在该数据类型中。

三、支持不同

1、char:只占一个字节,取值范围为 -128 ~ +127(-2^7~2^7-1)。

2、varchar:支持的最大长度是255个字符。

参考资料来源:

百度百科-varchar

百度百科-char

varchar是什么数据类 字符串

 VARCHAR是一种比CHAR更加灵活的数据类型,同样用于表示字符数据,但是VARCHAR可以保存可变长度的字符串。其中M代表该数据类型所允许保存的字符串的最大长度,只要长度小于该最大值的字符串都可以被保存在该数据类型中。因此,对于那些难以估计确切长度的数据对象来说,使用VARCHAR数据类型更加明智。VARCHAR数据类型所支持的最大长度也是255个字符。  VARCHAR特点:  1、使用比固定长度类型(char)占用更少存储空间(除了使用ROW_FORMAT=FIXED创建的MyISAM表);  2、使用额外的1-2字节来存储值长度,列长度《=255使用1字节保存,其它情况使用2字节保存。例如varchar(10)会占用11字节存储空间,varchar(500)会占用502字节存储空间;  3、节约空间,所以性能会有帮助。在更新的时候会产生额外的工作;  4、5.0以上版本,取值或设置值都会保存字符串末尾的空格,4.1之前的版本都会把字符串末尾的空格删除掉;  5、最大长度远大于平均长度,很少发生更新的时候适合使用varchar,因为碎片更少了。

数据库中char和varchar的区别

数据库中char和varchar的区别为:长度不同、效率不同、存储不同。

一、长度不同

1、char类型:char类型的长度是固定的。

2、varchar类型:varchar类型的长度是可变的。

二、效率不同

1、char类型:char类型每次修改的数据长度相同,效率更高。

2、varchar类型:varchar类型每次修改的数据长度不同,效率更低。

三、存储不同

1、char类型:char类型存储的时候是初始预计字符串再加上一个记录字符串长度的字节,占用空间较大。

2、varchar类型:varchar类型存储的时候是实际字符串再加上一个记录字符串长度的字节,占用空间较小。

varchar(10)什么意思

varchar(10)的意思是存储10个字节。

但是根据varchar特点,当存储长度小于或等于255时,使用额外1字节保存,其它情况使用2字节保存。因此时存储字节为10,所以varchar(10)会占用11字节存储空间。

MySQL4.1以前,VARCHAR数据类型所支持的最大长度255,5.0以上版本支持65535字节长度,utf8编码下最多支持21843个字符(不为空)。

扩展资料:

char和VARCHAR的区别:

1、char的长度是不可变的,而varchar的长度是可变的,

2、定义一个char,如果存进去的是‘abcd’,那么char所占的长度依然为10,除了字符‘abcd’外,后面跟六个空格,而varchar就立马把长度变为4了,取数据的时候,char类型的要用trim()去掉多余的空格,而varchar是不需要的。

参考资料来源:百度百科-varchar

varchar和char的区别

varchar和char的区别:

1、储存长度的不同

char和varchar是mysql中的两个相似的列,都可以存储字符和字符串。但是char存储的列的长度是不可变的,varchar存储的列的长度是可变的。

2、定义的不同

当定义列为varchar(2)时,存入比2个字符以上的数据时,会出现两种情况:

①sql mode为严格模式时,插入2个字符以上的数据就会报错。

②sql mode为非严格模式时,MySql会自动将超出的字符截取,保留符合的字符。

3、开启sql mode的方式不同

①先执行select @@sql_mode,复制查询出来的值并将其中的NO_ZERO_IN_DATE,NO_ZERO_DATE删除,然后执行set sql_mode = ’修改后的值'或者

set session sql_mode=’修改后的值';,例如:set session sql_mode=’STRICT_TRANS_TABLES’;改为严格模式此方法只在当前会话中生效,关闭当前会话就不生效了。

②先执行select @@global.sql_mode,复制查询出来的值并将其中的NO_ZERO_IN_DATE,NO_ZERO_DATE删除,然后执行set global sql_mode = ’修改后的值'。

此方法在当前服务中生效,重新MySQL服务后失效

③在mysql的安装目录下,或my.cnf文件(windows系统是my.ini文件),新增sql_mode = ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,

ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

添加my.cnf如下:

 sql_mode=ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER

然后重启mysql。

此方法永久生效.当然生产环境上是禁止重启MySQL服务的,所以采用方式二加方式三来解决线上的问题,那么即便是有一天真的重启了MySQL服务,也会永久生效了

关于varchar,varchar和varchar2的区别的介绍到此结束,希望对大家有所帮助。