Oracle 자료형의 종류
NUMBER
- 숫자 타입
- 정수, 실수 둘 다 표현 가능하다
- 음수, 0, 양수 표현 가능
- 가변 길이 타입
- NUMBER
- 최대 38자리까지 저장 가능한 타입
- NUMBER(숫자)
- 최대 '숫자'에 입력해놓은 자리까지 정수 '만' 저장가능한 타입
- NUMBER(숫자, d)
- 전체 '숫자' 자리까지 입력 가능, 소수점이하 d자리수까지 지정자리 확보
- ex) NUMBER(7, 3) - 전체 7자리, 정수부 4자리, 소수부 3자리
- ex) NUMBER(3, 5) - 전체 3자리, 소수점 이하 5자리 확보
- 전체 '숫자' 자리까지 입력 가능, 소수점이하 d자리수까지 지정자리 확보
VARCHAR2(n)
- 문자 타입
- 최대 n 길이의 문자를 저장할 수 있는 데이터 타입
- 가변 길이 문자 데이터
- 실제 저장되는 데이터 크기만큼만 저장공간을 가진다.
- 최소 크기는 1
- 최대 저장 길이는 n으로 반드시 명시해야한다, 명시하지 않는다면 선언 자체가 불가능하다.
- 최대 크기는 4000 이다.
- 한글 인코딩(Character set)을 UTF-8(AL32UTF8)을 사용하면 한글 한 글자당 3Byte가 필요하다.
- VARCHAR2 는 글자의 바이트 수만큼 길이를 파악하는 것이 기본이다.
- VARCHAR2 의 길이 지정자 n 뒤에 Byte, Char 접미어 사용 가능하다.
- BYTE - 바이트단위로 길이를 지정한다(기본값, 생략가능)
- CHAR - 문자 길이로 지정한다.
- VARCHAR2(30 CHAR) - 영어, 한글, 숫자 상관없이 30글자 표현 가능
- 데이터를 활용할 때 trim() 함수를 사용하는 것이 좋다.
CHAR(n)
- 고정 길이 문자 데이터
- n으로 지정한 크기만큼 저장 공간을 확보한다.
- CHAR 타입은 지정한 길이보다 입력한 데이터가 작다면 RIGHT PADDING을 해서라도 공간을 채우기 때문에 trim() 함수를 사용하는 것이 좋다.
- 최소 크기는 1이며 크기를 지정해주지 않으면 자동으로 크기는 1이 된다.
- 최대 크기는 2000 이다.
- 데이터를 활용할 때 trim() 함수를 사용하는 것이 좋다.
DATE
- 날짜 시간 타입(datetime)
- 날짜와 시간을 저장할 수 있는 타입
- 초단위까지 표현 가능
- 서식문자를 이용하여 년월일, 시분초, 오전/오후 등을 표현할 수 있음
- BC 4712/01/01 ~ 4712/12/31 의 표현범위를 가짐
TIMESTAMP
- 날짜 시간 타입(datetime)
- DATE 타입의 확장 타입
- 밀리초까지 표현 가능
- TIMEZONE(표준시간대) 설정이 가능하다.
SYSDATE : DATE 타입의 현재 날짜/시간
SYSTIMESTAMP : TIMESTAMP 타입의 현재 날짜/시간
RR, YY 의 서식 문자의 차이
- to_char 에서는 아무런 차이가 없다
- to_date 에서는 현재날짜와 관련하여 인식되는 년도가 달라진다
- YY
- 현재 년도의 앞 두자리가 붙는다
- ex)
- to_date('13/4/6', 'yy/mm/dd') - 2013년
- to_date('83/2/1', '/yy/mm/dd') - 2083년
- 현재 년도의 앞 두자리가 붙는다
- RR
- 현재 년도와 입력한 년도에 따라 달라진다
-- RR
-- 현재년도 입력년도 결과
-- 00~49 00~49 현재세기
-- 00~49 50~99 이전세기
--
-- 50~99 00~49 다음세기
-- 50~99 50~99 현재세기
--
-- ex)
-- 2015 29/03/02 2029년
-- 2028 69/09/13 1969년
--
-- 2077 20/03/31 2120년
-- 2099 94/09/07 2094년
LONG
- 가변 길이 타입
- 최대 길이가 2GB
- 테이블 당 한개의 컬럼만 지정할 수 있다.
- 테이블 내에 데이터가 저장된다.
LOB, Large Object
- 가변 길이 타입
- 최대 4GB 까지 저장 가능
- 테이블에 여러 컬럼으로 지정할 수 있다.
- 참조형으로 동작한다.
- 테이블에는 데이터의 저장 위치만 기록한다.
- 실제 데이터는 따로 테이블 밖에 저장한다.
- BLOB : 바이너리, Binary, 이진 데이터 // 테스트 하기 위해서는 프로그램이 있어야 함
- CLOB : 문자, Character, 문자 데이터 // 이걸 자주 사용한다. UTF8
- NCLOB : 문자, National Character // 거의 사용 안하는거 같다.
CLOB 데이터 조회하기
- DBMS_LOB 객체를 이용한다.
- DBMS_LOB.SUBSTR(COL, LEN, OFFSET)
- COL - 조회할 LOB 컬럼
- LEN - 조회할 데이터의 길이
- OFFSET - 조회가 시작되는 오프셋
- DBMS_LOB.SUBSTR(COL, LENGTH(COL), 1)
- 첫번째 데이터부터 COL 컬럼의 길이만큼 조회하기
RAW, LONG RAW - 쓰지말고 BLOB 쓰면 된다, 한물간 데이터타입
- 바이너리 데이터를 저장한다.
- 이미지나 사운드 같은 바이너리 파일을 저장할 때 사용하는 데이터타입이다.
- 이진 데이터가 저장되고 조회 시 16진수로 출력된다.
- 문자로 변환할 수 없다.
반응형
'Database > Oracle' 카테고리의 다른 글
[Oracle] 오라클의 트랜잭션, Transaction (0) | 2020.09.28 |
---|---|
[Oracle] 오라클 DDL, Data Definition Language, 데이터 정의어 (0) | 2020.09.28 |
[Oracle] 오라클의 집합 연산자 (0) | 2020.09.28 |
[Oracle] 오라클 다중 행 서브쿼리 (0) | 2020.09.28 |
[Oracle] ERD, Entity Relationship Diagram (0) | 2020.09.28 |