SQLServer中char、varchar、nchar、nvarchar的区别

SQLServer中char、varchar、nchar、nvarchar的区别,第1张

概述1.有var前缀的,表示是实际存储空间是变长的,varchar,nvarchar  所谓定长就是长度固定的,当输入的数据长度没有达到指定的长度时将自动以英文空格在其后面填充,使长度达到相应的长度;而变长字符数据则不会以空格填充,比较例外的是,text存储的也是可变长。  2.有n前缀的,n表示Unicode字符,即所有字符都占两个字节,nchar,nvarchar  字符中,英文字符只需要一个字节 1.有var前缀的,表示是实际存储空间是变长的,varchar,nvarchar 
所谓定长就是长度固定的,当输入的数据长度没有达到指定的长度时将自动以英文空格在其后面填充,使长度达到相应的长度;而变长字符数据则不会以空格填充,比较例外的是,text存储的也是可变长。 

2.有n前缀的,n表示Unicode字符,即所有字符都占两个字节,nchar,sans-serif; Font-size:14px; color:#333333; line-height:25.200000762939453px">字符中,英文字符只需要一个字节存储就足够了,但汉字众多,需要两个字节存储,英文与汉字同时存在时容易造成混乱,Unicode字符集就是为了解决字符集这种不兼容的问题而产生的,它所有的字符都用两个字节表示,即英文字符也是用两个字节表示。 
3.基于以上两点来看看字段容量 
char,varchar 最多8000个英文,4000个汉字 
nchar,nvarchar 可存储4000个字符,无论英文还是汉字 
varchar与nvarchar的选择("n"前缀)
使用varchar存储含有非英文字符(比如中文,日文)时出现“??”的乱码 

使用nvarchar的一个非常好处就是在判断字符串的时候可以不需要考虑中英文两种字符的差别.
  当然,使用nvarchar存储英文字符会增大一倍的存储空间.但是在存储代价已经很低廉的情况下,优先考虑兼容性会给你带来更多好处的.

  所以在Design的时候应该尽量使用nvarchar来存储数据.只有在你确保该字段不会保存中文的时候,才采用varchar来存储.

总结

以上是内存溢出为你收集整理的SQLServer中char、varchar、nchar、nvarchar的区别全部内容,希望文章能够帮你解决SQLServer中char、varchar、nchar、nvarchar的区别所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1171708.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-02
下一篇 2022-06-02

发表评论

登录后才能评论

评论列表(0条)

保存