CUBRID 2008 R4.1 기초강좌
데이터 정의 및 타입 - 비트 스트링 0 0 2,975

by 큐브리드 BIT BIT VARYING [2009.03.20]


 
데이터 정의 및 타입 - 비트 스트링
 
1. 비트 스트링 데이터 타입의 정의와 특성
 
1) 정의
 
비트 스트링은 0과 1로 이루어진 이진 값의 순열(sequence)이다. 컴퓨터 화면에 보여지는 이미지(비트맵)는 비트 스트링으로 저장할 수 있다. CUBRID는 두 가지 비트 스트링을 지원한다.
 
고정길이 비트 스트링(BIT)
 
가변길이 비트 스트링(BIT VARYING)
 
메소드의 인자나 속성의 도메인으로 비트 스트링을 사용할 수 있는데, 비트 스트링 리터럴은 이진수 형식이나 16진수 형식을 사용한다. 이진수 형식으로 사용할 때에는 다음 예제에서와 같이 문자 B 뒤에 0과 1로 이루어진 스트링을 붙여 표현한다.
B’0100110010100011’
 
16진수 형식을 이용하면 같은 수를 표현하는 데 이진수 형식에 비하여 적은 자릿수를 이용할 수 있다. 16진수 형식은 대문자 X 뒤에 0-9 그리고 A-F 문자로 이루어진 스트링을 붙여 표현한다. 예를 들어, 아래는 앞에서 이진수로 표현한 것과 같은 값을 16진수로 나타낸 것이다.
X’4ca3’
 
16진수에서 사용되는 문자는 대소문자를 구분하지 않는다. 즉, X’4f’와 X’4F’는 같은 값으로 간주된다.
 
2) 특성
 
① 길이(Length)
 
비트 스트링이 테이블 속성이나 메소드 선언에 사용될 때에는 최대 길이를 표시해야 한다. 비트 스트링이 가질 수 있는 최대 길이는 1,073,741,823비트이다.
 
② 비트 스트링의 변환(Bit String Coercion)
 
고정길이와 가변길이 비트 스트링 간에는 서로 비교를 위하여 자동 변환이 이루어진다. 명시적인 변환은 CAST 연산자를 이용해야 한다.
 
2. BIT(n)
 
고정길이 이진수 혹은 16진수 비트 스트링은 BIT(n)로 나타내는데, 여기서 n은 최대 비트의 개수를 나타낸다. 만약, n이 생략되면 길이는 1로 지정된다.
 
1) 참고 사항
 
n은 0보다 큰 숫자여야 한다.
 
스트링의 크기가 n을 넘어설 경우에는 오류로 처리된다.
 
n보다 작은 비트 스트링이 저장될 때에는 나머지 오른쪽 부분이 0으로 채워진다.
 
2) 예제
BIT(8)에 B’0001’을 지정하면 B’00010000’(또는 X’10’)가 저장됨(나머지 부분이 0으로 채워짐).
BIT(4)에 X’12c34A’를 지정하면 오류가 발생함(스트링의 크기가 4보다 크기 때문에 오류 발생).
BIT에 X’12c34A’를 지정하면 오류가 발생함(스트링의 크기가 디폴트 값인 1보다 크기 때문에 오류 발생).
 
3. BIT VARYING(n)
 
가변길이 비트 스트링은 BIT VARYING(n)으로 나타낸다. 여기서 n은 최대 비트의 개수를 나타낸다. 만약, n이 생략되면 길이는 1,073,741,823로 지정된다.
 
1) 참고 사항
 
스트링의 크기가 n을 넘어설 경우에는 오류로 처리된다.
 
n은 0보다 큰 숫자여야 한다.
 
n보다 작은 비트 스트링이 저장될 때에도 나머지 부분이 0으로 채워지지 않는다.
 
2) 예제
BIT VARYING(8)에 B’0001’을 지정하면 B’0001’(또는 X’1’)이 저장됨(나머지 부분이 0으로 채워지지 않음).
BIT VARYING(4)에 X’12c34A’를 지정하면 오류 발생함(스트링의 크기가 4보다 크기 때문에 오류 발생).
BIT VARYING에 X’12c34A’를 지정하면 X’12c34A’이 저장됨(n이 생략되면 최대 길이는 디폴트 값인 1,073,741,823로 지정되고 저장 시 나머지 부분은 채워지지 않음).
 

- 강좌 URL : http://www.gurubee.net/lecture/2023

- 구루비 강좌는 개인의 학습용으로만 사용 할 수 있으며, 다른 웹 페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^

- 구루비 강좌는 서비스 제공을 위한 목적이나, 학원 홍보, 수익을 얻기 위한 용도로 사용 할 수 없습니다.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입