티스토리 뷰

SQL

[SQL] 14. ORACLE SQL의 Data Type

superkong1 2018. 2. 7. 10:53
반응형

14. ORACLE SQL의 Data Type

오늘은 앞서 ORACLE SQL의 Data Type에 대해 자세히 알아보도록 하겠다.
Data Set을 넣을 테이블을 만들 때 Data Set에 맞는 적절한 Type과 길이를 지정해주지 않는다면,
분석을 위한 쿼리문 자체가 오류나는 경우가 있으니 정확히 알아야한다.

ORACLE SQL의 모든 데이터 유형은 아래와 같다.


보통 모든 데이터 유형을 사용할 일은 없지만,
LONG은 text import시에 종종 사용하므로 LONG사용과 관련된 주의사항을 참고해야한다.

※ LONG type 사용 시 주의사항 • LONG은 서브쿼리를 사용하여 테이블을 생성할 때 복사되지 않는다.
• LONG은 GROUP BY 또는 ORDER BY 절에 포함될 수 없다.
각 테이블당 하나의 LONG 열만 사용할 수 있다.(중요!)
• LONG에 대해 제약 조건을 정의할 수 없다.
• LONG 대신 CLOB을 사용할 수 있다.

주로 사용하는 데이터 유형 중에 문자형 유형에 대하여 자세히 알아보자.



CHAR과 VARCHAR2의 차이

CHAR과 VARCHAR2의 차이를 알아보자.

VARCHAR2가 나중에 나온 유형이기도 하고,
저장공간을 절약하는 기능이 있어 주로 사용된다.

차이를 명확하게 알아보기 위해 코드를 입력해보자.

예제) 사원들의 이름과 부서번호가 있는 emp700,
사원들의 부서번호와 부서위치가 있는 dept700을 생성하고,
아래의 사원 데이터를 입력하시오!

create table emp700
( ename varchar2(10),
deptno varchar2(10) ) ;

create table dept700
( deptno char(10),
loc char(10) ) ;

insert into emp700 values('scott', '10') ;
insert into emp700 values('smith', '20') ;

insert into dept700 values('10', 'dallas') ;
insert into dept700 values('20', 'chicago') ;

emp700과 dept700 테이블의 deptno에는 동일한 데이터가 들어가 있다. (10, 20)
각 데이터의 길이를 비교해보자.

→ VARCHAR2의 저장공간 절약 기능을 확인할 수 있다.

이 경우 emp700과 dept700을 서로 조인한다면
select e.ename, d.loc
from emp700 e join dept700 d
using(deptno);

아무것도 출력되지 않는다.
→ CHAR의 공백으로 인해 각 테이블의 deptno가 다른 데이터로 인식된다.


그렇다면, dept테이블의 deptno를 검색하려면 '10'이 아닌 '10 '으로 해야하는가?


결론은 아니다. Optimizer가 알아서 공백을 지워주고 검색해준다. (똑똑하다)



Datetime 데이터 유형

위에 없는 데이터 유형 중 가끔 사용되는 Datetime 데이터 유형이 있다.
R, Python에서도 많이 사용되는 부분으로, 참고를 위해 설명을 첨부한다.

Datetime 데이터 유형은 ORACLE 9i 이상의 버전에서 사용 가능하다.

=================이 글은 Markdown을 활용해 작성하였습니다=================

반응형

'SQL' 카테고리의 다른 글

[SQL] 16. Sequence, Synonym  (0) 2018.02.12
[SQL] 15. View  (0) 2018.02.09
[SQL] 13. 데이터 정의 언어(DDL문)  (0) 2018.02.06
[SQL] 12. 데이터 조작 언어(DML문)  (0) 2018.02.05
[SQL] 11. 레포팅 함수  (0) 2018.02.02
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함