首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

SQL Server 字元資料類型 char、nchar、varchar、nvarchar 差異詳細比較

     編輯:關於SqlServer

核心差異速查表

類型長度Unicode儲存大小最大字元數適用場景
char(n)固定否n bytes8,000 英文 / 4,000 中文固定長度代碼、國際標準代碼(如 ISO 國家代碼)
varchar(n)變動否實際長度 + 2 bytes8,000 英文 / 4,000 中文一般英文、數字、長度不定的描述欄位
nchar(n)固定是2n bytes4,000 字元(中英同)固定長度多國語言代碼
nvarchar(n)變動是字元數×2 + 2 bytes4,000 字元(中英同)含中文或多國語言的變長欄位

深度解析

定長 vs 變長

  • 定長:不足指定長度時自動以空格填充,讀取常需 TRIM();索引效率較高,但佔用空間大。
  • 變長:不填充空格,儲存體較小,但索引搜尋稍慢;額外 2 bytes 記錄實際長度。

Unicode vs 非 Unicode

  • 非 Unicode(char/varchar):英文 1 byte,中文 2 bytes,混合儲存易產生編碼混亂。
  • Unicode(nchar/nvarchar):所有字元統一 2 bytes,完美支援多國語言,免除編碼轉換困擾。

選型建議

  1. 純英文/數字、長度固定 → char
  2. 純英文/數字、長度不定 → varchar
  3. 含中文或多國語言、長度固定 → nchar
  4. 含中文或多國語言、長度不定 → nvarchar(最通用)

補充:max 指定大值類型

varchar(max)、nvarchar(max) 最大儲存 2^31-1 bytes(約 2 GB),適用於大型文本、JSON、XML 等非結構化資料,取代舊版 text/ntext。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved