固定長度 (char) 或可變長度 (varchar) 字符數(shù)據(jù)類型。
char[(n)]
長度為 n 個字節(jié)的固定長度且非 Unicode 的字符數(shù)據(jù)。n 必須是一個介于 1 和 8,000 之間的數(shù)值。存儲大小為 n 個字節(jié)。char 在 SQL-92 中的同義詞為 character。
varchar[(n)]
長度為 n 個字節(jié)的可變長度且非 Unicode 的字符數(shù)據(jù)。n 必須是一個介于 1 和 8,000 之間的數(shù)值。存儲大小為輸入數(shù)據(jù)的字節(jié)的實際長度,而不是 n 個字節(jié)。所輸入的數(shù)據(jù)字符長度可以為零。varchar 在 SQL-92 中的同義詞為 char varying 或 character varying。
如果沒有在數(shù)據(jù)定義或變量聲明語句中指定 n,則默認(rèn)長度為 1。如果沒有使用 CAST 函數(shù)指定 n,則默認(rèn)長度為 30。
將為使用 char 或 varchar 的對象被指派數(shù)據(jù)庫的默認(rèn)排序規(guī)則,除非用 COLLATE 子句另外指派了特定的排序規(guī)則。該排序規(guī)則控制用于存儲字符數(shù)據(jù)的代碼頁。
支持多語言的站點應(yīng)考慮使用 Unicode nchar 或 nvarchar 數(shù)據(jù)類型以盡量減少字符轉(zhuǎn)換問題。如果使用 char 或 varchar:
如果執(zhí)行 CREATE TABLE 或 ALTER TABLE 時 SET ANSI_PADDING 為 OFF,則一個定義為 NULL 的 char 列將被作為 varchar 處理。
當(dāng)排序規(guī)則代碼頁使用雙字節(jié)字符時,存儲大小仍然為 n 個字節(jié)。根據(jù)字符串的不同,n 個字節(jié)的存儲大小可能小于 n 個字符。
相關(guān)文章