(1)varchar(N) 存储时 N的单位是字节  比如说varchar(2)  代表的是  该字段可以存储字节长度为2的数据 例子:可以添加  张 或者 ab  添加成功!

但添加的时候如果是: 张三 则报错,因为 中文一个字符代表两个字节

(2)nvarchar(N) 存储时 N的单位是字符  比如说nvarchar(2)  代表的是  该字段可以存储字符长度为2的数据 例子: 可以添加  张三 或者 ab 添加成功!

但添加的时候如果是:  abc或abcd  则报错,因为 在这里N 代表的是可输入字符的最大长度。

在深入的说就是两种类型在存储空间大小计算方式有区别

比如说现在有个值  在  张三是sb

类型为 varchar 时: 分配的存储空间大小为 3个中文*2+2个英文字母=8个字节

类型为nvarchar时:分配的存储空间大小为  字符长度5*2=10个字节

所以我们能够看出,也为了方便理解:varchar 设置N表示可以存储的最大字节数,而nvarchar 设置N表示可以存储的最大字符数,在nvarchar中字节数据也被看做中文一样占用两个字节的存储空间

当我们理解后就在设计表时就可以根据我们自己的需要和相关业务的需求设置字段合理的类型啦。所以在改字段的值都是英文时把字段设置成varchar比设置成nvarchar划算的多。

04-14 11:04