1、char存储是定长的,当你定义为char(8)时,你输入的字节长度小于8,数据库会自动为空格填充长度为8字节
2、varchar(n)是可变长度非Unicode字符,n必须是介于1-8000之间的数值,存储大小为输入字符的实际字节长度,
是代表最大存储n个字节,而不是存储n个字符,每个汉字为两个字节,因此,n最多能存储n/2个汉字
3、nvarchar(n)是可变长的Unicode字符,n必须介于1-4000的数值,存储大小为输入字符的实际长度,最多能存储
n个字符,这字符可为汉字也可为英文
应用场景:
char存储为定长 的,存储方便,索引效率高,因此对于能确定为固定长度的字段定义为char是比较合适的,
对于不确定长度的字段采char为严重浪费存储空间。
varchar存储为可变长度,存储效率没有char高,需要存储当前字符的实际长度,实际占用空间比定义空间大,
又因其存储定义长度和英文长度一致,对于存储英文字符的字段比较合适
nvarchar存储为可变长度,实际存储长度是定义长度n的2倍,存储英文会占用两个字节,造成空间浪费,
比较适合存储汉字