oracle char和varchar的区别?
二者都是字段的字符数据类型,这点是相同的,主要不同在于二者的存储办法,以及查询。
char是固定长度的,而varchar是不固定长度的。
比如:某字段的格式为char(8)。那么这个字段的长度就是8,就算你仅仅存了一个字符a,它占用的空间也是8个长度的字符占用的空间的大小,也就是说char比较浪费存储空间。
相对而言,varchar就是一个可以变的字符类型,比如varchar2(8)表示最长可以存8位的字符,但是如果你仅仅存了一个a,那么这个a占用的存储仅仅为它本身占用的一个字符长度。
也就是说从存储来说:varchar2比char节省一些空间。
从查询来说:这个没有实际的例子证明,但是大部分人认为char字段的查询比varchar要快一些,但是我估计除非数据量特别大,不然这点看不太出来的。
varchar有几个字节?
MySQL 数据库的varchar类型在4.1以下的版本中的最大长度限制为255,其数据范围可以是0~255或1~255(根据不同版本数据库来定)。在 MySQL5.0以上的版本中,varchar数据类型的长度支持到了65535,也就是说可以存放65532个字节的数据,起始位和结束位占去了3个字 节,也就是说,在4.1或以下版本中需要使用固定的TEXT或BLOB格式存放的数据可以使用可变长的varchar来存放,这样就能有效的减少数据库文 件的大小。
MySQL 数据库的varchar类型在4.1以下的版本中,nvarchar(存储的是Unicode数据类型的字符)不管是一个字符还是一个汉字,都存为2个字节 ,一般用作中文或者其他语言输入,这样不容易乱码 ;varchar: 汉字是2个字节,其他字符存为1个字节 ,varchar适合输入英文和数字。
4.0版本以下,varchar(20),指的是20字节,如果存放UTF8汉字时,只能存6个(每个汉字3字节) ;5.0版本以上,varchar(20),指的是20字符,无论存放的是数字、字母还是UTF8汉字(每个汉字3字节),都可以存放20个,最大大小是65532字节 ;varchar(20)在Mysql4中最大也不过是20个字节,但是Mysql5根据编码不同,存储大小也不同,具体有以下规则:
varchar2300可以输多少个字?
5.0版本以前, varchar最多支持255个字节(bytes) ,至于汉字还要看你表的编码,如果是gbk编码,就是 127个汉字字符。如果是unicode 则是 255/3,utf-8比较常用也是255/3。
这是之前,咱们再说5.0以后
5.0之后 引入了更好的字符集处理方式
导致mysql会根据不同的 编码 自动分配存储空间的实际字节数。
比如 你用acsii编码 varchar(2300) 就是 2300个西文字符。
如果 你用utf-8 也是 2300个中文字符。
总之是系统自动处理的实际分配字节数。直接表现为最大的当前编码的最大长度。
5.0这时候 MySQL 已经最大可以支持varchar(65535)
不过大字符数量的数据,不建议用varchar,比较影响性能。
varchar是什么意思?
varchar
[词典]可变长字符串;
[例句]CHAR and VARCHAR of different lengths are compatible data types.
不同长度的CHAR和VARCHAR是兼容的数据类型
到此,以上就是小编对于varchar的问题就介绍到这了,希望介绍关于varchar的4点解答对大家有用。
版权声明:本文来自投稿用户,文章观点仅代表投稿用户本人,不代表天天想上网立场,本站仅提供存储服务,不承担相关法律责任,如有涉嫌抄袭侵权/违法违规内容,请发送邮件至964842246@qq.com举报,一经查实,本站将立刻删除。