char varchar 有什么區別[SQL SERVER]
來源:程序員人生 發布時間:2014-05-26 12:31:50 閱讀次數:5690次
nchar 和 nvarchar
nchar 是固定長度 Unicode 數據的數據類型,nvarchar 是可變長度 Unicode 數據的數據類型,二者均使用 UNICODE UCS-2 字符集。
nchar(n)
包含 n 個字符的固定長度 Unicode 字符數據。n 的值必須介于 1 與 4,000 之間。存儲大小為 n 字節的兩倍。nchar 在 SQL-92 中的同義詞為 national char 和 national character。
nvarchar(n)
包含 n 個字符的可變長度 Unicode 字符數據。n 的值必須介于 1 與 4,000 之間。字節的存儲大小是所輸入字符個數的兩倍。所輸入的數據字符長度可以為零。nvarchar 在 SQL-92 中的同義詞為 national char varying 和 national character varying。
注釋
如果沒有在數據定義或變量聲明語句中指定 n,則默認長度為 1。如果沒有使用 CAST 函數指定 n,則默認長度為 30。
如果希望列中所有數據項的大小接近一致,則使用 nchar。
如果希望列中數據項的大小差異很大,則使用 nvarchar。
使用 nchar 或 nvarchar 的對象被賦予數據庫的默認排序規則,除非使用 COLLATE 子句賦予特定的排序規則。
SET ANSI_PADDING OFF 不適用于 nchar 或 nvarchar。SET ANSI_PADDING ON 永遠適用于 nchar 和 nvarchar。
varchar 對每個英文(ascii)字符都占用2個字節,對一個漢字也只占用兩個字節
char 對英文(ascii)字符占用1個字節,對一個漢字占用2個字節
varchar 的類型不以空格填滿,比如varchar(100),但它的值只是"qian",則它的值就是"qian"
而char 不一樣,比如char(100),它的值是"qian",而實際上它在數據庫中是"qian "(qian后共有96個空格,
就是把它填滿為100個字節)。
由于char是以固定長度的,所以它的速度會比varchar快得多!但程序處理起來要麻煩一點,要用trim之類的函數把兩邊的空格
去掉!
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈