SQL欄位nvarchar, varchar, nchar, char比較
SQL在欄位設定中,儲存文字的char就分成這四種:
- nvarchar
- varchar
- nchar
- char
第一時間真的是不明白差距在哪!但仔細看其實還是有其規律性
| char前的參數 | 說明 | 
|---|---|
| var | 可變動。須額外花2bytes來儲存地址 | 
| n | 萬國碼。每一字會花2倍的空間 | 
實際儲存空間
| char | 長度 | 
|---|---|
| char(n) | n Bytes | 
| varchar(n) | (n + 2) Bytes ,其中2Bytes用來記錄地址 | 
| nchar(n) | (2 × n) Bytes | 
| nvarchar(n) | (2 × n + 2) Bytes | 
使用情境
從效能來看,因char、nchar不必再確認長度,速度較快些
佔據空間上,n則會花費2倍空間
實務上,還是得根據需求選擇怎樣的格式較佳!
簡單茲分如下
| 需求 | 參數 | 
|---|---|
| 只有英數字、長度固定 | char | 
| 只有英數字、長度不定 | varchar | 
| 會含英數以外的字元、長度固定 | nchar | 
| 會含英數以外的字元、長度不定 | nvarchar |