문자 형식의 예제 - Amazon Redshift

문자 형식의 예제

CREATE TABLE 문

다음은 VARCHAR 및 CHAR 데이터 형식을 사용하는 CREATE TABLE 문입니다.

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 열이기 때문에 두 번째 삽입된 주소의 후행 공백은 의미상 유의적이지 않습니다. 다시 말해서 삽입된 주소 2개 모두 일치합니다.

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));

이 경우 문자열의 첫 20자(City of South San Fr)가 열에 로드됩니다.