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 |