本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
字元類型
字元資料類型包括 CHAR (字元) 和 VARCHAR (可變長度字元)。
儲存與範圍
CHAR 和 VARCHAR 資料類型是以字元組而非字元來定義。CHAR 資料欄只能包含單位元組字元,因此 CHAR(10) 資料欄可包含最大長度為 10 位元組的字串。VARCHAR 可包含多位元組字元,每個字元最多 4 個位元組。例如,VARCHAR(12) 資料欄可包含 12 個單位元組的字元、6 個 2 位元組的字元、4 個 3 位元組的字元,或是 3 個 4 位元組的字元。
名稱 | 儲存 | 範圍 (資料欄的寬度) |
---|---|---|
CHAR 或 CHARACTER | 字串的長度,包括多餘的空格 (如果有的話) | 4096 位元組 |
VARCHAR 或 CHARACTER VARYING | 4 位元組 + 字元的總位元組數,其中每個字元都可以是 1 到 4 個位元組。 | 65535 位元組 (64K -1) |
主題
CHAR 或 CHARACTER
使用 CHAR 或 CHARACTER 資料欄來儲存固定長度的字串。這些字串會用空格填充,因此 CHAR(10) 資料欄一律會佔 10 個位元組的儲存空間。
char(10)
未指定長度規格的 CHAR 資料欄,會變成 CHAR(1) 資料欄。
VARCHAR 或 CHARACTER VARYING
使用 VARCHAR 或 CHARACTER VARYING 資料欄,來儲存具有固定限制的可變長度字串。這些字串並未使用空格填充,因此,VARCHAR(120) 資料欄最多可包含 120 個單位元組的字元、60 個 2 位元組的字元、40 個 3 位元組的字元,或是 30 個 4 位元組的字元。
varchar(120)
多餘空格的意義
CHAR 和 VARCHAR 資料類型都會儲存長度最多 n 個位元組的字串。嘗試將較長的字串儲存到這些類型的資料行中會導致錯誤。但是,如果多餘的字元都是空格 (空白),則字串會被截斷為最大長度。如果字串短於最大長度,CHAR 值會以空格填充,但 VARCHAR 值則會儲存不含空格的字串。
CHAR 值中的多餘空格在語義上一律不具有意義。這些空格會在您比較兩個 CHAR 值時被忽略、不列入 LENGTH 的計算中,而且會在您將 CHAR 值轉換為另一種字串類型時移除。
在比較值時,VARCHAR 和 CHAR 值中的多餘空格,在語義上會視為不具意義。
長度的計算會傳回 VARCHAR 字元字串的長度,其中也包含多餘的空格。多餘的空格不會列入固定長度字元字串的長度計算。