1. 字符类型
1.1 固定长度的字符串 char(L): L不是占用字节的大小, 而是字符串的长度; 字符占用字节的数量和数据库的编码格式息息相关;
char(10): 10 * 类型所用的字节
LATIN1: 一个字符占用1个字节
utf8: 一个字符占用3个字节
eg: char(4): 4 * 3 = 12字节 --utf8字符集
1.2 varchar(L): 可变长度的字符串. L表字符长度, 到底可以存储多少个字符和数据库的编码格式息息相关, 可变意思是在小于固定长度下想开多少就可以开多少
理论上可以存储65535个字符;但是编码格式表示字符并不是1个字节来表示, 而是用n个字符来表示, 则字符串的长度为(65535-(1到3))/n.
1.3 区别:
a. char而言, 定义了之后就开辟好空间了,对varchar而言, 在定义的范围内, 存储多少字符串, 就开辟多大的空间 !!!
b. 但是对于varchar类型,并不是可以超过固定的字符串长度
eg: varchar(100): 存储小于等于100的字符都可以开空间, 但是大于100就不行(告诉你存储不了