MySQL专题:char和varchar的区别_其他

1. char(n)和varchar(n)中括号中n代表字符的个数,并不代表字节个数,所以当使用了中文的时候(UTF8)意味着可以插入m个中文,但是实际会占用m*3个字节。

2.同时char和varchar最大的区别就在于char不管实际value都会占用n个字符的空间,而varchar只会占用实际字符应该占用的空间+1,并且实际空间+1<=n。(varchar中的另外1个字节记录字符串的长度)

3.超过char和varchar的n设置后,字符串会被截断。

4.char的上限为255字节,varchar的上限65535字节,text的上限为65535。

5.char在存储的时候会截断尾部的空格,varchar和text不会。

6.varchar会使用1-3个字节来存储长度,text不会。

 

扩展

int(11) : 11表示该数据类型指定的显示宽度,表示只显示11个数字的宽度。

注意:显示宽度和数据类型的取值范围是无关的,显示宽度只是指明MySQL最大可能显示的数字个数,数值的位数小于指定宽度时,会由空格填充;

如果插入了大于显示宽度的值,只要该值不超过该类型整数的取值范围,数值依然可以插入,而且能够显示出来。