首頁 > 資料庫 > mysql教程 > SQLServer中char、varchar、nchar、nvarchar的区别

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

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
發布: 2016-06-07 15:33:26
原創
1383 人瀏覽過

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

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

2.有n前缀的,n表示Unicode字符,即所有字符都占两个字节,nchar,nvarchar 
字符中,英文字符只需要一个字节存储就足够了,但汉字众多,需要两个字节存储,英文与汉字同时存在时容易造成混乱,Unicode字符集就是为了解决字符集这种不兼容的问题而产生的,它所有的字符都用两个字节表示,即英文字符也是用两个字节表示。 

3.基于以上两点来看看字段容量 

char,varchar 最多8000个英文,4000个汉字 
nchar,nvarchar 可存储4000个字符,无论英文还是汉字 
varchar与nvarchar的选择("n"前缀)
使用varchar存储含有非英文字符(比如中文,日文)时出现“??”的乱码 

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

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

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
tp6連線sqlserver資料庫問題
來自於 1970-01-01 08:00:00
0
0
0
php 如何呼叫sqlserver的分頁儲存過程
來自於 1970-01-01 08:00:00
0
0
0
php 7.2.10 連結 SQLserver2008r2 報錯
來自於 1970-01-01 08:00:00
0
0
0
Laravel 中無法連線 SQL Server
來自於 1970-01-01 08:00:00
0
0
0
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板