字符串類型決定字段如何存儲、處理、顯示。SQL-92 定義標準,各廠商在長度上限、編碼處理上差異巨大。
| 類型 | 長度 | 編碼 | 存儲特點 | 適用場景 |
|---|---|---|---|---|
CHAR(n) | 固定 n | 單字節/雙字節 | 右填空格,比較時忽略尾部空格 | 固定長度代碼(ISO 國家碼、狀態碼) |
VARCHAR(n) | 可變 ≤ n | 單字節 | 實際長度+1-2 字節開銷 | 通用短文本(姓名、地址、描述) |
NCHAR(n) | 固定 n | Unicode (UTF-16) | 雙字節固定,支持全字符集 | 多語言固定長度字段 |
NVARCHAR(n) | 可變 ≤ n | Unicode (UTF-16) | 雙字節可變,國際化首選 | 多語言通用文本 |
MAX (2GB)CLOBTEXTNVARCHARCHARVARCHARVARCHAR(MAX) / NVARCHAR(MAX) / TEXT / CLOBCHAR 更新不產生頁分裂,但浪費空間VARCHAR 更新可能導致行移動/頁分裂,需預留填充因子NVARCHAR(450) 可建索引,NVARCHAR(451) 不可COLLATE 影響比較/排序/索引,跨庫遷移必須對齊排序規則