character 就是char,
1.最大长度不同,char 最大254 bytes,varchar 最大 32672 bytes
2 存储不同
char(n) 在数据库占用 n 个字节,在数据库中以空格补足,但在取出来时末尾的空格将被去掉
varchar(n) 在数据库中至少占用1个字节,在数据库中末尾的空格将自动去掉,实际占用录入数据长度 +1 或者 +2 字节。
L 数据长度
L+1 bytes L <=M 0 <=M <=256
L+2 bytes L <=M 256 <M <=32672
在数据库中末尾的空格将自动去掉
char 一般是用来存储一些定长的字符串,对英文(ASCII)字符占用1个字节,对一个汉字占用2个字节。CHAR存储定长数据很方便,CHAR字段上的索引效率级高,比如定义 char(10),那么不论你存储的数据是否达到了10个字节,都要占去10个字节的空间。因为是固定长度,所以速度效率高。比如char(100),它的值是"qian",而实际上它在数据库中是"qian "(qian后共有96个空格,就是把它填满为100个字节)。
varchar 主要是存储不定长的字符串 Varchar 的类型不以空格填满,比如varchar(100),但它的值只是"qian",则它的值就是"qian"