在本教學中,將學習如何使用SQL Server CHAR
數據類型在資料庫中存儲固定長度的非Unicode字串。
CHAR數據類型簡介
在SQL Server中,如果要存儲固定長度的非Unicode字串數據,請使用CHAR
數據類型:
CHAR(n)
在此語法中,n
指定字串長度,範圍從1
到8000
。
因為n
是可選的,如果不在數據定義或變數聲明語句中指定它,則其默認值為1
。
僅當在列中值的大小固定時,才應使用CHAR
數據類型。
將字串值插入CHAR
列時。 如果字串值的長度小於列中指定的長度,SQL Server將向字串值添加尾隨空格到列中聲明的長度。 但是,當查詢選擇此字串值時,SQL Server會在返回之前刪除尾隨空格。
另一方面,如果插入長度超過列長度的值,SQL Server將發出錯誤消息。
請注意,CHAR
的ISO同義詞是CHARACTER
,可以互換使用它們。
CHAR數據類型示例
以下語句創建一個包含CHAR
列的新表:
CREATE TABLE test.sql_server_char (
val CHAR(3)
);
請注意,如果資料庫中沒有test
模式,則可以在創建sql_server_char
表之前使用以下語句創建它:
CREATE SCHEMA test;
GO
要將固定長度的字串插入CHAR
列,請使用INSERT語句,如下所示:
INSERT INTO test.sql_server_char (val)
VALUES
('ABC');
上面語句按預期那樣工作。以下語句嘗試插入長度超過列長度的新字串:
INSERT INTO test.sql_server_char (val)
VALUES ('XYZ1');
SQL Server發出以下錯誤:
String or binary data would be truncated.
The statement has been terminated.
以下語句將單個字元插入test.sql_server_char
表的val
列:
INSERT INTO test.sql_server_char (val)
VALUES
('A');
在SQL Server中,LEN
函數返回指定列中排除尾隨空白的字元數,DATALENGTH
函數返回位元組數。
請參閱以下語句:
SELECT
val,
LEN(val) len,
DATALENGTH(val) data_length
FROM
sql_server_char;
執行上面查詢,得到以下結果:
即使字元“A”
只是一個字元,列的位元組數也是固定的,即:3
。
在本教學中,學習了如何使用SQL Server CHAR
數據類型在資料庫中存儲固定長度的非Unicode字串。
上一篇:
SQL Server數據類型
下一篇:
SQL Server數據定義