ORACLE SQL

데이터 형식

마이구미2 2021. 2. 24. 11:47

오라클 데이터 형식

Oracle Built-in Data Types

- Character

- Numeric

- Date

- LOB

 

VALUE TYPE

Type Example
Character 'nEWlec'
'A'
'148'
Numeric 38
3.85
3.85F
137
Date '2013-02-09'
TIMESTAMP '2013-06-03 10.38.29.00000'

 

문자형 데이터 형식

형식 설명
CHAR(N) 고정길이 문자 / 최대 2000byte / 기본값: 1byte
VARCHAR2(N) 가변길이 문자 / 최대 4000byte / 기본값: 1byte
NCHAR(N) 고정길이 유니코드 문자(다국어 입력 가능) / 최대 2000byte / 기본값: 1byte
NVARCHAR2(N) 가변길이 유니코드 문자(다국어 입력 가능) / 최대 2000byte / 기본값: 1byte
LONG 가변길이 문자 / 최대 2Gbyte
CLOB 대용량 텍스트 데이터 타입 / 최대 4Gbyte
NCLOB 대용량 텍스트 유니코드 데이터 타입 / 최대 4Gbyte

 

- 문자별 byte 할당량

영어, 숫자, 공백은 1자 당 1byte 할당

그 외 문자는 인코딩에 따라 2 혹은 3 byte 할당

(AL16UTF16 encoding - 2byte / UTF8 encoding - 3byte)

 

- 고정길이

실제 입력된 데이터 길이에 상관없이 할당된 메모리 길이가 변하지 않음

입력된 데이터 길이가 할당된 메모리 길이보다 작을 경우 빈 공간은 NULL값으로 채워짐

 

- 가변길이

실제 입력된 데이터 길이에 따라서 할당된 메모리 길이가 변함

구분 기호에 의해 메모리 길이가 조정됨

 

CHAR(데이터길이 [BYTE|CHAR(기본값: BYTE)])
VARCHAR2(데이터길이 [BYTE|CHAR(기본값: BYTE)])

CHAR(3): 3byte 고정길이
CHAR(3 CHAR): 3자 고정길이
VARCHAR2(3): 최대 3byte 가변길이
VARCHAR2(3 CHAR): 최대 3자 가변길이

NCHAR(데이터길이)
NVARCHAR2(데이터길이)

NCHAR(3): 유니코드 3자 고정길이
NVARCHAR2(3): 유니코드 3자 가변길이

 

* MAX SIZE

32767 bytes or characters if MAX_STRING_SIZE = EXTENDED

4000 bytes of characters if MAX_STRING_SIZE = STANDARD

 

 

숫자형 데이터 형식

형식 설명
NUMBER(P, S) 가변길이 숫자 / P (1 ~ 38) / S (-84 ~ 127) / 최대 22byte
FLOAT(P) NUMBER의 하위형식 / P (1 ~ 128) / 최대 22byte
BINARY_FLOAT 32비트 부동소수점 숫자 / 최대 4byte
BINARY_DOUBLE 64비트 부동소수점 숫자 / 최대 8byte
NUMBER(P(기본값: 38), S(기본값: 0))
FLOAT(P(기본값: 128))

NUMBER(4): 최대 4자리로 이루어진 숫자
NUMBER(6, 2): 소수점 2자리를 포함하는 최대 6자리의 숫자(소수점 2자리에서 반올림)
NUMBER(6, -2): 소수점 -2자리에서 반올림하는 최대 6자리의 숫자

NUMBER = NUMBER(38, *)
NUMBER(*, 5) = NUMBER(38, 5)

 

날짜형 데이터 형식

형식 설명
DATE BC 4712년 1월 1일 ~ 9999년 12월 31일 / 연, 월, 일, 시, 분, 초 입력 가능
TIMESTAMP 연, 월, 일, 시, 분, 초, 밀리초 입력 가능

TIMESTAMP: NLS_TIMESTAMP_FORMAT 파라미터에 명시된 값을 따름
TIMESTAMP WITH TIME ZONE: NLS_TIMESTAMP_TZ_FORMAT 파라미터에 명시된 값을 따름
TIMESTAMP WITH LOCAL TIME ZONE: NLS_TIMESTAMP_FORMAT 파라미터에 명시된 값을 따름

 

SELECT * FROM NLS_DATABASE_PARAMETERS;

 

LOB 데이터 형식

형식 설명
CLOB 고정, 가변길이 문자집합을 지원하는 문자형 대용량 객체
NCLOB 유니코드를 지원하는 문자형 대용량 객체
BLOB 이진형 대용량 객체
BFILE 대용량 이진 파일에 대한 위치, 이름 저장

 

데이터 형식 지정 예시

ID		VARCHAR2(50)
PWD 		VARCHAR2(50)
NAME		NVARCHAR2(10)
GENDER 		NCHAR(2)
AGE		NUMBER(3)
BIRTHDAY	CHAR(10)
PHONE		CHAR(13)
REGDATE		DATE

ID, PWD	: 영어, 숫자 최대 50자 가변길이
NAME	: 한글 최대 10자 가변길이
GENDER	: 한글 2자 고정길이 (여자 혹은 남자)
AGE	: 숫자 3자 고정길이
BIRTHDAY: 문자 10자 고정길이 (0000.00.00)
PHONE	: 문자 13자 고정길이 (010-0000-0000)
REGDATE	: 날짜

 

'ORACLE SQL' 카테고리의 다른 글

단일행 함수  (0) 2021.02.26
연산자  (0) 2021.02.25
SELECT문  (0) 2021.02.24
테이블 & 데이터  (0) 2021.02.24
SQL 기본  (0) 2021.02.24