SQL Server 中char,char(n),nchar,nchar(n),nvarchar,nvarchar(n),varchar,varchar(n)的解释与区别:
char: 固定长度,存储ANSI字符,不足的补英文半角空格。
nchar: 固定长度,存储Unicode字符,不足的补英文半角空格
varchar: 可变长度,存储ANSI字符,根据数据长度自动变化。
nvarchar: 可变长度,存储Unicode字符,根据数据长度自动变化。
nvarchar(n) :包含 n个字符的可变长度 Unicode 字符数据。n 的值必须介于 1 与 4,000 之间。字节的存储大小是所输入字符个数的两倍。所输入的数据字符长度可以为零。
varchar(n):长度为 n 个字节的可变长度且非Unicode的字符数据。n 必须是一个介于 1 和 8,000之间的数值。存储大小为输入数据的字节的实际长度,而不是 n 个字节。所输入的数据字符长度可以为零。
char(n):表示存储固定长度为n个字节的字符,一个英文或者标点符号占用一个字节,一个中文占用两个字节,所以char(n)可以存放n个英文或者标点符号,或者n/2个中文
nchar(n):表示存储固定长度为n字符长度的字符,因为nchar类型的字段是Unicode编码,所以每一个英文、标点符号或者中文都是占用2个字节,即nchar(n)可以存放n个英文、标点符号或者中文,实际存储大小=实际字符长度*2 个字节