varchar和Nvarchar的区别

  (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划算的多。

时间: 2024-10-03 22:47:31

varchar和Nvarchar的区别的相关文章

SQL中char、varchar、nvarchar的区别

SQL中char.varchar.nvarchar的区别: char    char是定长的,也就是当你输入的字符小于你指定的数目时,char(8),你输入的字符小于8时,它会再后面补空值.当你输入的字符大于指定的数时,它会截取超出的字符.   nvarchar(n)    包含 n 个字符的可变长度 Unicode 字符数据.n 的值必须介于 1 与 4,000 之间.字节的存储大小是所输入字符个数的两倍.所输入的数据字符长度可以为零.       varchar[(n)]      长度为

char、varchar和nvarchar的区别

首先char.varchar和nvarchar.text.ntext都是数据库中的文本数据类型,再区分区分var前缀.n前缀的区别.而text.ntext已经普遍被varchar(MAX)和nvarchar(MAX)所替代,所以一般不使用. char 表示不可变长度,如果赋的值不够指定位数,则末尾使用空格补齐. varchar 表示可变长度,如果赋的值不够指定位数,以实际赋的值为准. nvarchar n前缀表示的是unicode编码标准.如果是带n的,则每个字符占2个字节.如果不带n的,则英文

sql-char和varchar,nvarchar的区别

数据类型的比较 char表示的是固定长度,最长n个字 varchar表示的是实际长度的数据类型 比如:如果是char类型,当你输入字符小于长度时,后补空格:而是varchar类型时,则表示你输入字符的实际长度 (n为某一整数,不同数据库,最大长度n不同) CHAR:CHAR存储定长数据很方便,CHAR字段上的索引效率级高,比如定义char(10),那么不论你存储的数据是否达到了10个字节,都要占去10个字节的空间. VARCHAR:存储变长数据,但存储效率没有CHAR高,如果一个字段可能的值是不

char和nchar,varchar和nvarchar的区别

1)       定义: char:    固定长度,存储ANSI字符,不足的补英文半角空格. nchar:   固定长度,存储Unicode字符,不足的补英文半角空格 varchar:  可变长度,存储ANSI字符,根据数据长度自动变化. nvarchar: 可变长度,存储Unicode字符,根据数据长度自动变化. nvarchar(n) :包含 n个字符的可变长度 Unicode 字符数据.n 的值必须介于 1  与  4,000 之间.字节的存储大小是所输入字符个数的两倍.所输入的数据字符

SQL中 char varchar和nvarchar的区别

转至:http://www.cnblogs.com/carekee/articles/2094676.html char    char是定长的,也就是当你输入的字符小于你指定的数目时,char(8),你输入的字符小于8时,它会再后面补空值.当你输入的字符大于指定的数时,它会截取超出的字符.   nvarchar(n)    包含 n 个字符的可变长度 Unicode 字符数据.n 的值必须介于 1 与 4,000 之间.字节的存储大小是所输入字符个数的两倍.所输入的数据字符长度可以为零.   

数据库中varchar和nvarchar的区别

1.varchar是以字节为单位存储的,而nvarchar是以字符(占两个字节)为单位存储的.也就是说,varchar用一个字节存储一个英文字母,用两个字节存储一个中文汉字,而nvarchar得用两个字节存储一个英文字母,用两个字节存储一个中文汉字. 2.varchar(n)表示长度为n个字节,nvarchar(n)表示长度为n个字符(2n个字节). 3.nvarchar是用来存储中文汉字这种的双字节字符的,所以如果确定字段的值不会包含英文,尽量使用nvarchar来存储. 4.使用nvarch

SQL中char、varchar、nvarchar的区别(zhuan)

char    char是定长的,也就是当你输入的字符小于你指定的数目时,char(8),你输入的字符小于8时,它会再后面补空值.当你输入的字符大于指定的数时,它会截取超出的字符.   nvarchar(n)    包含 n 个字符的可变长度 Unicode 字符数据.n 的值必须介于 1 与 4,000 之间.字节的存储大小是所输入字符个数的两倍.所输入的数据字符长度可以为零.       varchar[(n)]      长度为 n 个字节的可变长度且非 Unicode 的字符数据.n 必

【转】CHAR CHARACTER VARCHAR NCHAR NVARCHAR NVARCHAR2区别

http://blog.csdn.net/lhl6688/article/details/44156823?ref=myread oracle提供了五种字符数据类型:char.nchar.varchar.varchar2.nvarchar2. char:使用数据库字符集来存储数据,长度固定,如果存储的数据没有达到指定长度,自动补足空格.指定长度时,默认长度的计量单位由 NLS_LENGTH_SEMANTICS(默认为字节byte)参数决定,但是我们可以手动指定为char或者byte.oracle

[转]SQL中char、varchar、nvarchar的区别

char    char是定长的,也就是当你输入的字符小于你指定的数目时,char(8),你输入的字符小于8时,它会再后面补空值.当你输入的字符大于指定的数时,它会截取超出的字符.   nvarchar(n)    包含 n 个字符的可变长度 Unicode 字符数据.n 的值必须介于 1 与 4,000 之间.字节的存储大小是所输入字符个数的两倍.所输入的数据字符长度可以为零.       varchar[(n)]      长度为 n 个字节的可变长度且非 Unicode 的字符数据.n 必