Open Source RDBMS - Seamless, Scalable, Stable and Free

한국어 | Login |Register

Versions available for this page: CUBRID 8.4.0 |  CUBRID 8.4.1 |  CUBRID 8.4.3 |  CUBRID 9.0.0 | 



정의와 특성

정의

CUBRID는 네 종류의 문자열(character string) 타입을 지원한다.

  • 고정길이 문자열 : CHAR(n)
  • 가변길이 문자열 : VARCHAR(n)
  • 고정길이 국가 문자열 : NCHAR(n)
  • 가변길이 국가 문자열 : NCHAR VARYING(n)

다음은 문자열 타입을 사용할 때 적용되는 규칙이다.

  • 문자열은 작은 따옴표로 감싸서 표현한다. SQL 구문 관련 파라미터인 ansi_quotes의 값에 따라 문자열을 감싸는 부호로 큰 따옴표도 사용할 수 있다. ansi_quotes 값을 no로 설정하면 큰 따옴표로 감싼 문자열을 식별자로 처리하지 않고 문자열로 처리한다. 기본값은 yes이다. 자세한 설명은 구문/타입 관련 파라미터를 참고한다.
  • ANSI 표준에 따라 두 개의 문자열 사이에 공간으로 취급할 수 있는 문자(예: 공백, 탭, 줄바꿈 등)가 있다면, 두 개의 문자열은 연속된 하나의 문자열로 취급된다. 예를 들면, 다음과 같이 두 개의 문자열 사이에 줄바꿈이 있는 경우가 있다.
  • 'abc'
  • 'def'
  • 위 문자열은 아래에 있는 하나의 문자열과 동일하다.
  • 'abcdef'
  • 작은 따옴표 자체를 문자열에 포함시키려면, 두 개의 작은 따옴표를 연속으로 입력하면 된다. 예를 들어, 아래의 왼쪽 문자열은 실제로 오른쪽과 같이 저장된다.
  • ''abcde''fghij'       'abcde'fghij
  • 모든 문자열에 대한 토큰의 최대 크기는 16KB이다.
  • 국가 문자열은 다국어 환경에서 영어 외의 문자열을 저장할 때 사용할 수 있다. 단, 아래 예제와 같이 문자열을 감싸는 시작 따옴표 앞에 반드시 대문자 N을 붙여야 한다.
  • N'Härder'
특성

길이(Length)

CHARVARVAHR 타입에서는 문자열의 크기(바이트)를 지정하며, NCHARNCHAR VARYING 타입에서는 문자의 개수를 지정한다.

입력된 문자열이 지정된 길이를 초과하는 경우, 지정된 길이에 맞도록 데이터를 자르므로(truncate) 주의한다.

또한, CHARNCHAR와 같은 고정 길이 문자열 타입에서는 선언한 길이에 고정되므로, 문자를 저장할 때 오른쪽에 공백 문자(trailing space)를 채운다. 한편, VARCHAR 또는 NCHAR VARYING과 같은 가변 길이 문자열 타입에서는 공백 문자를 채우지 않고 실제 입력된 문자열만큼 저장한다.

CHAR 또는 VARCHAR 타입에서 지정할 수 있는 최대 길이는 1,073,741,823이며, NCHAR 또는 NCHAR VARYING 타입에서 지정할 수 있는 최대 길이는 536,870,911이다. 또한, CSQL 문장으로 한 번에 입력 또는 출력할 수 있는 최대 크기는 8192KB이다.

문자 세트(Character Set, charset)

문자 세트(문자 집합)는 특정 문자(symbol)를 컴퓨터에 저장할 때, 어떠한 코드로 인코딩할 것인지에 대한 규칙이 정의된 집합을 의미한다. CUBRID가 지원하는 문자 세트는 다음과 같으며, CUBRID_LANG 환경 변수로 설정할 수 있다. 그 외의 문자 세트(예: UTF-8)인 경우 데이터 저장은 가능하나, 문자 함수 및 LIKE 검색을 지원하지 않는다.

문자 세트

CUBRID_LANG

8비트 ISO 8859-1 Latin

en_US

KSC 5601-1992 (EUC-KR)

ko_KR.euckr

위 문자 세트의 모든 문자가 문자열에 포함될 수 있다(NULL 문자는 '0'로 나타낸다).

문자 세트의 정렬(Collating Character Set)

콜레이션(collation)은 어느 문자 세트가 설정된 상태에서 데이터베이스에 저장된 값들을 검색하거나 정렬하는 작업을 위해 문자들을 서로 비교할 때 사용하는 규칙들의 집합이다. 따라서 이러한 규칙은 CHAR 또는 VARCHAR와 같은 문자열 데이터 타입에만 적용된다. 단, NCAHR, NCHAR VARYING과 같은 국가 문자열 데이터 타입에서는 해당 문자 세트의 인코딩 알고리즘에 따라 정렬 규칙이 결정된다.

문자열 변환(Character String Coercion)

고정길이와 가변길이 문자열 사이에는 두 문자의 길이가 비교 가능할 수 있도록 자동 변환이 된다. 자동 변환은 동일한 문자 세트에 속하는 문자열에만 적용된다.

예를 들어, 데이터 타입이 CHAR(5)인 컬럼을 추출하여 데이터 타입이 CHAR(10)인 컬럼에 삽입하는 경우 자동으로 데이터 타입이 CHAR(10)으로 변환되어 삽입된다. 문자열을 명시적으로 변환할 수도 있는데, 이 때에는 CAST 연산자를 사용한다(CAST 연산자 참조).