- 관계형 데이터베이스에서 제공하는 데이터 타입은 대개 CHAR, VARCAHR2, NUMBER, DATE, LONG, RAW, LONG RAW, ROWID 타입으로 분류한다.
- 원하는 정보를 가장 효율적으로 처리하기 위해서 적절한 데이터 타입의 선정이 필요 하다.
- 적절하지 못한 데이터 타입의 선정은 수행속도를 나쁘게 하고 불필요한 자원을 낭비를 가져온다.
VARCHAR2 타입
- - 가변길이 문자형 데이터 타입
- - 최대 길이 : 2000 바이트(반드시 길이 지정)
- - 다른 타입에 비해 제한이 적다
- - 일부만 입력시 뒷부분은 NULL
- - 입력한 값의 뒷부분에 있는 BLANK도 같이 입력
- - 전혀 값을 주지 않으면 NULL 상태 입력
- - 지정된 길이보다 길면 입력시 에러 발생
- - 컬럼 길이의 편차가 심한 경우, NULL 로 입력되는 경우가 많은 경우 VARCHAR2 사용
NUMBER 타입
- - 숫자형 데이타 타입, 음수, ZERO, 양수 저장
- - 전체 자리수는 38자리를 넘을 수 없다
- - 소수점이 지정되지 않았을 때 소수점이 입력되거나, 지정된 소수점자리 이상 입력되면 반올림되어 저장
- - 지정한 정수 자리수 이상 입력시 에러 발생
- - 연산이 필요한 컬럼은 NUMBER타입으로 지정한다.
- - NUMBER(p,s) 로 지정시 p는 s의 자리수를 포함한 길이므로 감안하여 P의 자리수를 결정
- - NUMBER 타입은 항상 가변길이므로 충분하게 지정할 것
DATE 타입
- - 일자와 시간을 저장하는 날짜형 타입
- - 일자나 시간의 연산이 빈번한 경우 사용
- - 포함정보 : 세기, 년도, 월, 일, 시간, 분, 초
- - NLS_DATE_FORMAT을 이용하여 국가별 특수성을 해결
- - 특별히 시간을 지정하지 않으면 00:00:00로 입력 됨
- - 특별히 일자를 지정하지 않았다면 현재월의 1일로 지정 됨
- - SYSDATE는 현재일과 시간을 제공
LONG 타입
- - 2기가 바이트의 가변길이 문자 저장
- - VARCHAR2와 유사한 특징을 가진나 아래와 같은 제한사항이 있다.
- * 하나의 테이블에 하나의 LONG 타입만 사용 가능
- * (NOT) NULL을 제외한 다른 제약 조건은 지정할 수 없다
- * 인덱스를 만들 수 없다
- * PROCEDURE 나 Stored FUNCTION에서 LONG 타입의 변수를 받을 수 없다
- * Stored FUNCTION은 LONG 타입 출력불가
- * SELECT문 내에서 WHERE, GROUP BY, ORDER BY, CONNECT BY, DISTINCT불가
- * SQL Function(SUBSTR,REPLACE,..) 사용 불가
- * CREATE TABLE .. AS SELECT.. 사용불가
RAW, LONG RAW, ROWID 타입
- - 그래픽 IMAGE 나 디지탈 SOUND를 저장
- - HEXA-DECIMAL 형태로 RETURN
- - RAW는 VARCHAR2와 유사
- - LONG RAW는 LONG과 유사하나 아래와 같은 제한사항이 있다.
- * 저장과 추출만 가능하고, DATA를 가공할 수 없다.
- * LONG RAW는 LONG과 같은 제한 사항을 같는다.
참고자료
- - 오라클클럽 위키 제3장 데이터 타입 및 길이의 결정
- - Oracle Database 9i - Data Type
- - Oracle Database 10g - Data Type
- - Oracle Database 11g - Data Type
태그
문서에 대하여
- - 강좌 URL : http://www.gurubee.net/lecture/1380
- - 이 문서를 다른 블로그나 홈페이지에 게재하실 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^
- - 구루비의 모든 강좌는 크리에이티브 커먼즈의 저작자표시-비영리-동일조건변경허락(BY-NC-SA) 라이선스에 따라 자유롭게 사용할 수 있습니다.
'IT > Oracle SQL' 카테고리의 다른 글
SELECT문 및 연산자 (0) | 2015.02.03 |
---|---|
MERGE 문의 이해 및 활용 (0) | 2015.02.03 |
데이터의 삽입, 수정, 삭제 (0) | 2015.02.03 |
테이블의 관리 (0) | 2015.02.02 |
LOB, LONG, LONG RAW 데이터 타입 간의 비교 (0) | 2015.02.02 |
테이블의 제약조건 (0) | 2015.02.02 |
테이블의 생성 (0) | 2015.02.02 |
오라클 데이터베이스를 설치하면 기본적으로 생성되는 Role (0) | 2015.02.02 |
롤(Role) (0) | 2015.02.02 |
시스템 권한(System Privileges) (0) | 2015.02.02 |