闲来整理下二者区别,仅供参考

varchar是标准sql里的,varchar2是oracle所提供的独有的数据类型。

varchar对于汉字占两个字节,对于数字,英文字符是一个字节,占的内存小,varchar2一般情况下把所有字符都占两字节处理。具体要看数据库使用的字符集,比如GBK,汉字就会占两个字节,英文1个,如果是UTF-8,汉字一般占3个字节,英文还是1个。

注意:varchar对空串不处理,varchar2将空串当做null来处理。varchar存放固定长度的字符串,最大长度是2000,varchar2是存放可变长度的字符串,最大长度是4000。如果是要更换不同的数据库,例如mysql,那么就用varchar,如果就用oracle,那么用varchar2比较好一点。

mysql 区别看如下:

具体还是要看版本的,⼀个字符占⽤3个字节,⼀个汉字(包括数字)占⽤3个字节=⼀个字符

4.0版本以下,varchar(100),指的是100字节,如果存放UTF8汉字时,只能存33个(每个汉字3字节)

5.0版本以上,varchar(100),指的是100字符,⽆论存放的是数字、字母还是UTF8汉字(每个汉字3字节),都可以存放100个。 UTF8编码中⼀个汉字(包括数字)占⽤3个字节 GBK编码中⼀个汉字(包括数字)占⽤2个字节

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐