varchar(10) 的10是代表是10个字节,还是代表存放的字符个数为10个以及nvarchar(10) 网上资料说它的每个字符占两个字节,那么说是只能存5个字符
但我输10个字符也可以.
varchar(10)
nvarchar(10)
这两个有点不是很明白,望大家能给我解释下.
但我输10个字符也可以.
varchar(10)
nvarchar(10)
这两个有点不是很明白,望大家能给我解释下.
包含 n 个字符的可变长度 Unicode 字符数据。n 的值必须介于 1 与 4,000 之间。字节的存储大小是所输入字符个数的两倍。所输入的数据字符长度可以为零。
varchar[(n)]:
长度为 n 个字节的可变长度且非 Unicode 的字符数据。n 必须是一个介于 1 和 8,000 之间的数值。存储大小为输入数据的字节的实际长度,而不是 n 个字节。所输入的数据字符长度可以为零。
nvarchar 和 varchar 的区别是存储方式不同
varchar是按字节存储的.而带"n"的nvarchar是按字符存储的
比如说 varchar(40),能存储40个字节长度的字符,存储中文字符的时候,因为中文字符1个字符就等于2个字节.所以varchar(40)只能存储20个中文字符.
nvarchar(40),就可以存储40个中文字符,也就是说可以存储80个字节长度的字符.
nvarchar要相对于存储的字符类型.比如有些字符是占3个字节的.
同样的,char和nchar也一样道理
nvarchar 是字符貌似
declare @c varchar(4),@n nvarchar(4)
select @c='12313132',@n=N'13131312321'
select @c,@n,datalength(@c),datalength(@n)