Tibero
에서는 SQL 표준에 기반한 Data Type을 제공한다.
이 중 문자열을 표현하는 Data Type인 문자형 Type에는 아래 Type들이 있다.
CHAR
Type은 문자열을 저장하는 Data Type으로, 고정된 문자열 길이를 가진다.
CHAR(size [BYTE|CHAR])
CHAR
Type은 최대 2,000Byte나 2,000자 까지 선언할 수 있고,
변환된 문자열 길이가 2,000Byte나 2,000자가 넘어가면 Error가 발생한다.
Tibero
에서는 CHAR
Type으로 정의한 Column에 입력된 문자열을,
DB 문자 집합에 맞게 변환하여 저장하는데 이때 2,000 Byte나 2,000자를 초과해선 안된다.
CHAR
Type 선언 시 CHAR(10 BYTE)
, CHAR(10 CHAR)
형태로 선언한다.
BYTE로 선언할 경우엔 10바이트까지 저장,
CHAR로 선언할 경우엔 10자까지 저장
만약 CHAR(10)
형태로 선언하면 기본 값은 BYTE로 문자열 길이가 지정된다.
CHAR(10 CHAR)
형태로 선언 할 때는, 실제 Column 길이는 DB에서 사용하는 문자 집합에 따라 달라진다.
한 문자가 몇 BYTE로 표현되는지에 따라
CHAR_COLUMN = 'charVal'
형태로 사용한다.
GILLOG_NAME CHAR(10)
위와 같은 Column은 10 Byte의 문자열 길이를 가지게 되고,
만약 GILLOG_NAME = 'gillog'
와 같은 문자열을 입력할 경우,
실제로 저장되는 문자열은 gillog____
로 4개의 공백 문자가 채워지게 된다.
선언된 길이보다 짧은 문자열이 입력될 경우, 남은 부분은 공백 문자(Space)로 채워짐
VARCHAR
Type도 CHAR
Type처럼 문자열을 저장하는 Data Type이다.
CHAR
Type과 다른점은 문자열 길이가 일정하지 않은 가변 길이를 가진다는 점이다.
VARCHAR(size [BYTE|CHAR])
변환된 문자열 길이가 4,000 Byte나 4,000자를 초과할 경우 Error가 발생한다.
VARCHAR
Type의 Column에 입력된 문자열을 DB 문자 집합에 맞게 변환하여 저장하는데,
변환된 문자열은 4,000 Byte나 4,000자를 초과해서는 안 된다.
VARCHAR
Type 선언 시 VARCHAR(10 BYTE)
, VARCHAR(10 CHAR)
형태로 선언한다.
BYTE로 선언할 경우엔 10바이트까지 저장,
CHAR로 선언할 경우엔 10자까지 저장
만약 VARCHAR(10)
형태로 선언하면 기본 값은 BYTE로 문자열 길이가 지정된다.
VARCHAR(10 CHAR)
형태로 선언 할 때는, 실제 Column 길이는 DB에서 사용하는 문자 집합에 따라 달라진다.
한 문자가 몇 BYTE로 표현되는지에 따라
VARCHAR_COLUMN = 'varCharVal'
형태로 사용한다.
GILLOG_NAME VARCHAR(10)
위와 같은 Column은 10 Byte의 문자열 길이를 가지게 되고,
만약 GILLOG_NAME = 'gillog'
와 같은 문자열을 입력할 경우,
실제로 저장되는 문자열은 gillog
로 6글자가 저장된다.
VARCHAR
Type은 선언된 문자열 길이 범위 내에서,
입력 문자열 길이와 저장 문자열 길이가 같다.
공백 문자(Space)가 들어가지 않음.
VARCHAR2
Type은 VARCHAR
Type과 동일하다.
NCHAR
Type은 유니코드 문자열 저장을 위한 Type으로, 항상 고정된 문자열 길이를 갖는다.
NCHAR(size)
NCHAR
Type의 길이는 DB 다국어 문자 집합에 따라 다른데,
UTF8
의 경우 size의 최대 3배,
UTF16
의 경우 size의 최대 2배가 저장된다.
기존 CHAR(6)
에는 한글 기준, 길이가 3인 문자열까지만 저장되지만,
NCHAR(6)
에는 한글 기준에서도 6글자 까지 저장이 가능하다.
NVARCHAR
Type은 NCHAR
와 같이 유니코드 문자열 저장을 위한 Type이다.
VARCHAR
와 마찬가지로 문자열 길이가 일정하지 않은 가변 길이를 가진다.
NCHAR
와 마찬가지로 NVARCHAR
Type의 길이는 DB 다국어 문자 집합에 따라 다른데,
UTF8
의 경우 size의 최대 3배,
UTF16
의 경우 size의 최대 2배가 저장된다.
기존 VARCHAR(6)
에는 한글 기준, 길이가 3인 문자열까지만 저장되지만,
NVARCHAR(6)
에는 한글 기준에서도 6글자 까지 저장이 가능하다.
NVARCHAR2
Type은 NVARCHAR
Type과 완전히 동일하다.
RAW
Type은 임의 Binary Data 저장 Data Type이다.
이때 Binary Data는 선언된 최대 길이내 임의 길이를 가진다.
RAW
Type이 CHAR
, VARCHAR
Type과 다른점은,
RAW
Type의 경우 Data 중간에 NULL 문자('\0')가 올 수 있다.
CHAR
, VARCHAR
는 Data 끝을 표현할때 NULL 문자('\0') 사용
RAW
Type은 NULL 문자('\0')로 Data 끝을 나타낼 수 없어,
항상 길이 정보를 같이 저장 한다.
RAW(size)
예를 들어 4 Byte Data는 16 진수로 '012345AB'로 표현 되며,
필요한 경우 맨 앞이 0으로 시작되야 한다.
LONG
Type은 VARCHAR
Type을 확장한 Data Type이다.
VARCHAR
Type과 마찬가지로 문자열 저장이 가능하다.
LONG
LONG RAW
Type은 RAW
Type을 확장한 Data Type이다.
RAW
Type과 마찬가지로 Binary Data가 저장된다.
LONG RAW