8.10. 비트 문자열 자료형

비트 문자열이란 1과 0으로 구성된 문자열이다. 이것은 비트 마스크 저장과 출력에 유용하게 사용된다. 이 자료형으로는 bit(n) 또는 bit varying(n) 형태로 사용할 수 있으며, n 값으로 양수를 사용한다.

bit 자료형으로 사용하는 자료의 길이는 n 값과 정확히 맞아야한다; 만일 그 자료의 길이가 크거나 작으면 오류가 생긴다. bit varying 자료형으로 사용하는 자료의 길이는 n 값이 최대 길이이다; 작으면 괜찮고, 크면 오류가 생긴다. 길이값을 지정하지 않고, bit 만으로 지정하면, bit(1) 형태로 사용되며, bit varying 만으로 지정하면, 길이 제한이 없는 형태로 사용된다.

참고: 비트 자료형으로 바꾸고자 할 때, bit(n) 형태를 사용하게 되면, n 길이 만큼 잘리거나, 0으로 채워지면서 변환되며, bit varying(n) 형태를 사용하게 되면, n 길이보다 클 경우는 잘리고, 작을 경우는 원래 자료형의 변환된 길이만큼으로 변환된다.

비트 문자열 구문에 대한 정보는 4.1.2.5절을 참조하고, 비트 연산, 관련 함수는 9.6절을 참고하시라.

예 8-7. 비트 문자열 자료형 사용하기

CREATE TABLE test (a BIT(3), b BIT VARYING(5));
INSERT INTO test VALUES (B'101', B'00');
INSERT INTO test VALUES (B'10', B'101');
오류:  길이가 2인 비트 문자열 자료는 bit(3) 자료형의 길이와 일치하지 않습니다
INSERT INTO test VALUES (B'10'::bit(3), B'101');
SELECT * FROM test;
  a  |  b
-----+-----
 101 | 00
 100 | 101

A bit string value requires 1 byte for each group of 8 bits, plus 5 or 8 bytes overhead depending on the length of the string (but long values may be compressed or moved out-of-line, as explained in 8.3절 for character strings).