sqlserver的varchar nvarchar区别

来源:https://www.cnblogs.com/sunbr/p/11448786.html

https://blog.csdn.net/qq_40789890/article/details/90228763

char:    固定长度,存储ANSI字符,不足的补英文半角空格。

nchar:   固定长度,存储Unicode字符,不足的补英文半角空格

varchar:  可变长度,存储ANSI字符,根据数据长度自动变化。

nvarchar: 可变长度,存储Unicode字符,根据数据长度自动变化。

TEXT:text存储可变长度的非Unicode数据,最大长度为2^31-1个字符

nvarchar(n) :包含 n个字符的可变长度 Unicode 字符数据。n 的值必须介于 1  与  4,000 之间。字节的存储大小是所输入字符个数的两倍。所输入的数据字符长度可以为零。

varchar[(n)]:长度为 n 个字节的可变长度且非 Unicode的字符数据。n 必须是一个介于   1 和 8,000之间的数值。存储大小为输入数据的字节的实际长度,而不是 n 个字节。所输入的数据字符长度可以为零。

注意: ANSI主要是以单字节来存储数据,一般适合英文。而我们常用的汉字需要用两个字节来存储,所以就要使用unicode的数据类型,不然读取出来的数据可能会乱码。

例如:varchar(4)可以输入4个字节,也可以输入两个汉字;nvarchar(4)可以输入4个汉字,也可以输入4个字符,但是最多4个;

原文地址:https://www.cnblogs.com/fangxinliu/p/14003722.html