1. 오라클 데이터 타입
데이터 타입(Data Type)이란 컬럼이 저장되는 데이터 유형을 뜻하며, 오라클에서는 기본으로 제공되는 기본 데이터 타입(원시 데이터 타입) 과 사용자 정의 데이터 타입으로 구분할 수 있다. 이번 포스팅에서는 보통 많이 쓰이는 오라클 제공 기본 데이터 타입에 대해서 다뤄보도록 하겠다.
(1) 문자 데이터 타입
문자나 문자열 데이터는 문자형 데이터에 포함되며, 오라클에서 이를 저장하는 문자형 데이터 타입은 다음과 같다.
여기서 중요한 것은 CHAR 타입은 고정길이인 반면 VARCHAR2는 실제 입력된 데이터 길이에 따라 크기가 변해지는 가변 길이를 가지는 타입이라는 것이다.
관련 SQL 문을 작성해보면 다음과 같다.
-- 예시 테이블 생성
CREATE TABLE ex2_1(
column1 CHAR(10),
column2 varchar2(10),
column3 varchar(10),
column4 NUMBER
);
-- 데이터 입력
INSERT INTO ex2_1(column1,column2) VALUES ('abc','abc');
-- SQL 문 출력
-- length : 컬럼 길이 반환
SELECT column1,length(column1) as len1,
column2,length(column2) as len2
from ex2_1;
같은 3byte의 데이터의 입력 결과, CHAR(10) 크기의 컬럼의 길이는 10, VARCHAR2(10) 크기의 컬럼의 길이는 3임을 확인할 수 있다.이러한 이유로 문자형 컬럼은 공간 효율화를 위해 CHAR 보다는 VARCHAR2를 사용하는 것이 권장된다.
이 밖에도 영어 한 문자는 1byte, 한글은 2byte (DB 설정에 따라 3byte) 의 크기를 차지하는 점을 고려해 컬럼의 크기를 정해야 한다.
(2) 숫자 데이터 타입
오라클에서 제공하는 숫자형 데이터 타입은 다음과 같다.
숫자 타입이 위와 같이 4가지가 존재하긴 하지만 실질적으로 쓰이는 타입은 NUMBER 타입이다.다른 타입은 NUMBER 타입의 하위 타입이라 볼 수 있으며 INTEGER 와 같은 정수형,DECIMAL 같은 실수형 등의 오라클 제공 컬럼 타입도 결국 내부적으로 NUMBER 타입으로 변환되어 생성된다.
실습)
-- 예시 테이블 생성
CREATE TABLE ex2_3(
COL_INT INTEGER,
COL_DEC DECIMAL,
COL_NUM NUMBER
);
-- SQL 문 입력
-- user_tab_cols : 시스템 뷰
SELECT column_id, column_name, data_type, data_length
from user_tab_cols
WHERE table_name = 'EX2_3'
ORDER BY column_id;
NUMBER 타입은 NUMBER(p,s) 형식으로 크기를 지정할 수도 있다. p(precision,정밀도) 는 최대 유효숫자 자릿수를, s(scale)는 소수점 기준 자릿수를 의미한다.입력값에 따른 결과 예시는 다음과 같다.
정리하면 오라클에서 문자형 데이터 타입은 보통 VARCHAR2, 숫자형 데이터 타입은 NUMBER(경우에 따라 p,s로 크기 세부조정) 을 활용한다.
참고자료
오라클 SQL과 PL/SQL을 다루는 기술
더북(TheBook): (주)도서출판 길벗에서 제공하는 IT 도서 열람 서비스입니다.
thebook.io
'데이터베이스 > Oracle' 카테고리의 다른 글
[Oracle] 제약조건(Constraints) 의 개념과 종류(1) NOT NULL&UNIQUE (0) | 2023.07.18 |
---|---|
[Oracle] 제약조건(Constraints) 의 개념과 종류(2) Primary key&Foreign key&Check (0) | 2023.07.11 |
[Oracle] 테이블 조회 및 SELECT 사용법 (0) | 2023.07.06 |