sql中use語句 sql中4個漢字用char(10)還是varchar(8)?
sql中4個漢字用char(10)還是varchar(8)?一般認為varchar的效率低于char,因為varchar在插入時會判斷字段長度并做出權衡。其實,所有廠商都在做這部分的優(yōu)化,現(xiàn)在看來沒有
sql中4個漢字用char(10)還是varchar(8)?
一般認為varchar的效率低于char,因為varchar在插入時會判斷字段長度并做出權衡。其實,所有廠商都在做這部分的優(yōu)化,現(xiàn)在看來沒有什么區(qū)別(至少從處理千萬級的角度來說,感覺沒有什么區(qū)別,當然,可能跟數(shù)據倉庫沒有更新有關)。四個漢字一般理解為8個字節(jié)。如果漢字的個數(shù)是1,2,3,4,最好根據空格使用varchar(8)。當然,它可以節(jié)省空間,但已經所剩無幾,除非數(shù)據量特別大,否則是看得出來的。如果只保存了四個漢字而沒有其他數(shù)字,為什么不使用char(8)呢?另一種情況是選擇char,即有更多更新時。在這種情況下,char比VARCHAR2好。
SQL中varchar和nvarchar有什么區(qū)別?
Varchar(n)
是長度為n字節(jié)的非Unicode字符數(shù)據。N必須是介于1和8000之間的值。存儲大小是輸入數(shù)據字節(jié)的實際長度,而不是n字節(jié)。輸入數(shù)據的字符長度可以為零。SQL-92中varchar的同義詞是charvarying或charactervarying。
Nvarchar(n)
包含n個字符的可變長度Unicode字符數(shù)據。N的值必須介于1和4000之間。字節(jié)的存儲大小是輸入字符數(shù)的兩倍。輸入的字符長度可以為零。SQL-92中nvarchar的同義詞有民族性變和民族性變。
首先,varchar和nvarchar可以存儲漢字。不同的是,漢字代表varchar(2),只有nvarchar(1),而字母代表varchar(1)。在計算數(shù)據庫字段的長度時,varchar不一定知道它有多少個字符。如果使用nvarchar,漢字也是nvarchar(1),字母也是nvarchar(1),那么很容易知道字段的長度,為時已晚。
其次,varchar比nvarchar快