字元類型範例 - Amazon Redshift

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

字元類型範例

CREATETABLE聲明

下面的CREATETABLE語句演示了使用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 欄Augusta中的值 (即欄) 永遠會傳回 7 個CHAR字元的長度,而不論輸入字串中的尾隨空格為何。

超過資料欄長度的值

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

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 個字元會載入資料欄。