字元類型範例 - Amazon Redshift

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

字元類型範例

CREATE TABLE 陳述式

下列的 CREATE TABLE 陳述式示範 VARCHAR 和 CHAR 資料類型的使用:

create table address( address_id integer, address1 varchar(100), address2 varchar(50), district varchar(20), city_name char(20), state char(2), postal_code char(5) );

下列的範例使用此資料表。

可變長度字元字串中的多餘空格

由於 ADDRESS1 是 VARCHAR 資料欄,因此在第二個插入的地址中,多餘的空格在語義上是無關緊要的。換句話說,下列這兩個插入的地址是相符合的。

insert into address(address1) values('9516 Magnolia Boulevard'); insert into address(address1) values('9516 Magnolia Boulevard ');
select count(*) from address where address1='9516 Magnolia Boulevard'; count ------- 2 (1 row)

如果 ADDRESS1 資料欄原本是 CHAR 資料欄,而且插入了相同的值,則 COUNT(*) 查詢會將字元字串視為相同,並傳回 2

LENGTH 函數的結果

LENGTH 函式會辨識 VARCHAR 資料欄中的多餘空格:

select length(address1) from address; length -------- 23 25 (2 rows)

在 CITY_NAME 資料欄 (CHAR 資料欄) 中的 Augusta 值,無論輸入字串中是否有任何多餘的空格,一律會傳回 7 個字元的長度。

超過資料欄長度的值

字元字串不會為了配合資料欄宣告的寬度而遭到截斷:

insert into address(city_name) values('City of South San Francisco'); ERROR: value too long for type character(20)

這個問題的解決方法,是將值轉換為符合資料欄的大小:

insert into address(city_name) values('City of South San Francisco'::char(20));

在這個例子中,字串 (City of South San Fr) 的前 20 個字元會載入資料欄。