关于varchar与nvarchar的“N”

如果你每次建数据表的时候固执的使用varchar,那么你可能会遇到以下的问题:

现在saleUserName的字段类型为varchar(50)

update TableName set saleUserName=‘小覃祝你?快乐‘ where ID=87

select * from TableName where ID=87

why?SaleUserName字段里的文字怎么变成这样了。?这个符号怎么变成了?

好的,那么我现在将saleUserName的字段类型改为nvarchar(50)呢

update TableName set saleUserName=‘小覃祝你?快乐‘ where ID=87

select * from TableName where ID=87

What!?怎么还是一样!

那么,稍微改一下,在参数值前面加上N。现在可以看到调皮的?出来了。

update TableName set saleUserName=N‘小覃祝你?快乐‘ where ID=87

------加上 N 代表存入数据库时以 Unicode 格式存储。

----------------------------------------------------------总结的时候,我总是得召唤出这么华丽的分割线-----------------------------------------------------------------

unicode,以前学习的时候看过,根本没留心。那么好,百度一下,百度百科是这么说的:Unicode是国际组织制定的可以容纳世界上所有文字和符号的字符编码方案。

nvarchar和ntext就是可以容纳unicode的类型,所以才能存储调皮的?等特殊字符。

以前根本没留意过这些数据类型,看到说是存unicode类型的,可是根本不知道unicode为何物。码农就是这么任性,不够重视这些东西。

时间: 2024-10-20 00:20:57

关于varchar与nvarchar的“N”的相关文章

SQL中varchar和nvarchar有什么区别?

varchar(n)长度为 n 个字节的可变长度且非 Unicode 的字符数据.n 必须是一个介于 1 和 8,000 之间的数值.存储大小为输入数据的字节的实际长度,而不是 n 个字节. nvarchar(n)包含 n 个字符的可变长度 Unicode 字符数据.n 的值必须介于 1 与 4,000 之间.字节的存储大小是所输入字符个数的两倍. 两字段分别有字段值:我和coffee那么varchar字段占2×2+6=10个字节的存储空间,而nvarchar字段占8×2=16个字节的存储空间.

数据库中varchar和Nvarchar区别与联系

在数据库中新建表的时候发现了字段类型有的带n有的不带n,那么两者之间有什么区别? 于是上网查找一些资料如下: 一. 1.CHAR.CHAR存储定长数据很方便,CHAR字段上的索引效率级高,比如定义char(10),那么不论你存储的数据是否达到了10个字节,都要占去10个字节的空间,不足的自动用空格填充,所以在读取的时候可能要多次用到trim(). 2.VARCHAR.存储变长数据,但存储效率没有CHAR高.如果一个字段可能的值是不固定长度的,我们只知道它不可能超过10个字符,把它定义为 VARC

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的区别

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

varchar和Nvarchar区别

varchar 如果是英文,则占一个字符;中文,占两字符 1-8000 (纯英文时,用此)nvarchar 英文,中文,都占两个字符   1-4000  (中英文都有时,用此) Unicode字符集就是为了解决字符集这种不兼容的问题而产生的,它所有的字符都用两个字节表示,即英文字符也是用两个字节表示 如果还为了这个纠结,就直接看看后面的解说,做决定吧. 一般如果用到中文或者其它特殊字符,我就会使用n开头的类型,否则的话直接使用var开头的. sql server中的varchar和Nvarcha

varchar(n),nvarchar(n) 长度、性能、及所占空间的说明

varchar(n),nvarchar(n) 中的n怎么解释: nvarchar(n)最多能存n个字符,不区分中英文. varchar(n)最多能存n个字节,一个中文是两个字节. 所占空间: nvarchar(n)一个字符会占两个字节空间. varchar(n)中文占两字节空间,英文占一个. n的取值范围: nvarchar(n)   n的范围是:1与4000之间 varchar(n)   n的范围是:1与8000之间 n的大小是否会影响性能: varchar及nvarchar里的长度 n 不会

sql-char和varchar,nvarchar的区别

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

sql server中的varchar和Nvarchar有什么区别?

很多开发者进行数据库设计的时候往往并没有太多的考虑char, varchar类型,有的是根本就没注意,因为存储价格变得越来越便宜了,忘记了最开始的一些基本设计理论和原则,这点让我想到了现在的年轻人,大手一挥一把人民币就从他手里溜走了,其实我想不管是做人也好,做开发也好,细节的把握直接决定很多东西.当然还有一部分人是根本就没弄清楚他们的区别,也就随便选一个.在这里我想对他们做个简单的分析,当然如果有不对的地方希望大家指教. 1.CHAR.CHAR存储定长数据很方便,CHAR字段上的索引效率级高,比

varchar(n),nvarchar(n) 长度、性能、及所占空间分析 nvarchar(64) nvarchar(128) nvarchar(256)(转)

varchar(n),nvarchar(n) 中的n怎么解释: nvarchar(n)最多能存n个字符,不区分中英文. varchar(n)最多能存n个字节,一个中文是两个字节. 所占空间: nvarchar(n)一个字符会占两个字节空间. varchar(n)中文占两字节空间,英文占一个. n的取值范围: nvarchar(n)   n的范围是:1与4000之间 varchar(n)   n的范围是:1与8000之间 n的大小是否会影响性能: varchar及nvarchar里的长度 n 不会

oracle中varchar,varchar2,nvarchar,nvarchar2的区别

--varchar,varchar2 联系: 1.varchar/varchar2用于存储可变长度的字符串 比如varchar(20),存入字符串'abc',则数据库中该字段只占3个字节,而不是20个字节 2.size 的最大值是 4000,而最小值是 1,其值表示字节数,比如 varchar(20)表示最大可以存放20个字节的内容 区别: 1.varchar2把所有字符都占两字节处理(一般情况下),varchar只对汉字和全角等字符占两字节,数字,英文字符等都是一个字节: 2.VARCHAR2