[SQL] Char和varChar的区别

1.存储规则

char(10),varchar(10),10指的是字符个数而不是字节个数。

编码格式:

Mysql中要求行定义的长度不能超过65535个字节。

Latin1:一个字符占一个字节。最多存放(65535-1-2)/1=65532个字符

GBK:一个字符占两个字节。。。。。。

UTF8:一个字符占三个字节。。。。。。

{-1是指varchar从第二个字节开始存放。

    -2是指varchar的前两个字节用来存放varchar的长度。}

2.varchar和char的区别

①定长和变长

char的长度是固定的,char(10)代表指定字段的长度为10个字符,若实际存放不满足10个字符,则在右边加空格填充。char适合存储长度差不多的数据。

varchar的长度是可变的,需要开头使用1(字符串长度小于2^8)到2个字节(2^16)来存储数据的长度。varchar(10)代表可以存放的数据的最大长度为10个字符,最大为65535-1-2=65532个字节。

②存储容量不同

char最大能存放255个字符,和编码无关。

varchar最大能存放65532个字节,字符数和编码格式相关。

3.最大长度限制

实际应用中varchar长度限制的是一个行定义的长度

阅读更多

没有更多推荐了,返回首页