nchar、nvarchar、char及varchar使用於比較

如果你想簡單的瞭解一些,其中:char、varchar用於描述定、變長的字符型數據;nchar、nvarchar用來存儲Unicode字符集的定、變長字符型數據。 如果你想進一步瞭解,請查看如下內容:

一、nchar和nvarchar

  nchar是固定長度Unicode數據的數據類型,nvarchar是可變長度Unicode數據的數據類型,二者均使用UNICODEUCS-2字符集。

nchar(n)

  包含n個字符的固定長度Unicode字符數據。n的值必須介於1與4,000之間。存儲大小爲n字節的兩倍。nchar在SQL-92中的同義詞爲nationalchar和nationalcharacter。

nvarchar(n)

  包含n個字符的可變長度Unicode字符數據。n的值必須介於1與4,000之間。字節的存儲大小是所輸入字符個數的兩倍。所輸入的數據字符長度可以爲零。nvarchar在SQL-92中的同義詞爲nationalcharvarying和nationalcharactervarying。

註釋

1. 如果沒有在數據定義或變量聲明語句中指定n,則默認長度爲1。如果沒有使用CAST函數指定n,則默認長度爲30。
2. 如果希望列中所有數據項的大小接近一致,則使用nchar。
3. 如果希望列中數據項的大小差異很大,則使用nvarchar。
4. 使用nchar或nvarchar的對象被賦予數據庫的默認排序規則,除非使用COLLATE子句賦予特定的排序規則。
5. SETANSI_PADDINGOFF不適用於nchar或nvarchar。SETANSI_PADDINGON永遠適用於nchar和nvarchar。

二、char和varchar

  固定長度(char)或可變長度(varchar)字符數據類型。

char[(n)]

  長度爲n個字節的固定長度且非Unicode的字符數據。n必須是一個介於1和8,000之間的數值。存儲大小爲n個字節。char在SQL-92中的同義詞爲character。

varchar[(n)]

  長度爲n個字節的可變長度且非Unicode的字符數據。n必須是一個介於1和8,000之間的數值。存儲大小爲輸入數據的字節的實際長度,而不是n個字節。所輸入的數據字符長度可以爲零。varchar在SQL-92中的同義詞爲charvarying或charactervarying。

註釋

1. 如果沒有在數據定義或變量聲明語句中指定n,則默認長度爲1。如果沒有使用CAST函數指定n,則默認長度爲30。
2. 將爲使用char或varchar的對象被指派數據庫的默認排序規則,除非用COLLATE子句另外指派了特定的排序規則。該排序規則控制用於存儲字符數據的代碼頁。
3. 支持多語言的站點應考慮使用Unicodenchar或nvarchar數據類型以儘量減少字符轉換問題。
4. 如果使用char或varchar:
 如果希望列中的數據值大小接近一致,請使用char。
 如果希望列中的數據值大小顯著不同,請使用varchar。
 如果執行CreateTABLE或AlterTABLE時SETANSI_PADDING爲OFF,則一個定義爲NULL的char列將被作爲varchar處理。
5. 當排序規則代碼頁使用雙字節字符時,存儲大小仍然爲n個字節。根據字符串的不同,n個字節的存儲大小可能小於n個字符。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章