MSSQL Server
char vs varchar vs nvarchar
MSSQL Server char(n) vs varchar(n) * n为字节单位而非字符单位,这是有区别的,在单字节编码字符集存储时,n的大小即为字符长度,当所存储的字符无法使用单字节编码字符集表示时则会采用双字节字符集存储,n的大小则是字符的2倍 * char会存储固定字节长度的字符,如果定义char(4)则插入'ab'会被存储为'ab ',超出字节长度的字符串会被截断。实际存储大小总是4 bytes,另外插入'ab '后查询出的结果是会去除末尾空格为'ab' * varchar存储可变字节长度的字符,如果定义varchar(4)则插入'ab'即存储为'ab'而不会向char一样使用空格填充,在检索时也不会去除末尾空格。然而使用varchar(n)