在 SQL 中,可以使用 CHAR
或 VARCHAR
數(shù)據(jù)類型來(lái)存儲(chǔ)定長(zhǎng)字符串。
CHAR
數(shù)據(jù)類型:用于存儲(chǔ)定長(zhǎng)字符串,長(zhǎng)度固定,會(huì)在存儲(chǔ)時(shí)用空格填充空白部分。例如,定義一個(gè)長(zhǎng)度為 10 的 CHAR
類型列 name
,可以使用以下語(yǔ)句:CREATE TABLE person (
id INT PRIMARY KEY,
name CHAR(10)
);
在這個(gè)例子中,name
列將會(huì)存儲(chǔ)長(zhǎng)度為 10 的字符串,如果插入的字符串長(zhǎng)度小于 10,那么會(huì)在字符串右側(cè)用空格填充。
VARCHAR
數(shù)據(jù)類型:用于存儲(chǔ)可變長(zhǎng)字符串,長(zhǎng)度不固定,會(huì)根據(jù)實(shí)際插入的字符串長(zhǎng)度來(lái)分配存儲(chǔ)空間。例如,定義一個(gè)長(zhǎng)度為 10 的 VARCHAR
類型列 name
,可以使用以下語(yǔ)句:CREATE TABLE person (
id INT PRIMARY KEY,
name VARCHAR(10)
);
在這個(gè)例子中,name
列將會(huì)存儲(chǔ)長(zhǎng)度為 10 的字符串,如果插入的字符串長(zhǎng)度小于 10,那么不會(huì)填充空格,而是直接存儲(chǔ)實(shí)際字符串。
需要注意的是,在使用 CHAR
數(shù)據(jù)類型時(shí),如果插入的字符串長(zhǎng)度大于定義的長(zhǎng)度,那么 SQL Server 會(huì)截?cái)嘧址瑢?dǎo)致數(shù)據(jù)丟失。而使用 VARCHAR
數(shù)據(jù)類型時(shí),如果插入的字符串長(zhǎng)度大于定義的長(zhǎng)度,那么 SQL Server 會(huì)自動(dòng)調(diào)整列的長(zhǎng)度以適應(yīng)實(shí)際字符串。