1. 서브쿼리(SubQuery)란?
- Main Query에 반대되는 개념으로 이름을 붙인 것
- 메인쿼리를 구성하는 소단위 쿼리
- select, insert, delete, update절에서 모두 사용 가능
- 서브쿼리의 결과 집합을 메인 쿼리가 중간 결과값으로 사용
- 서브 쿼리 자체는 일반 쿼리와 다를 바가 없다.
2. Oracle data type
2-1. 데이터 타입
- 데이터 타입이란 컬럼이 저장되는 데이터 유형을 말한다. 기본 데이터 타입은 문자형, 실수, 소수, 자료형 등이 여러 데이터를 식별하는 타입입니다.
- char 고정길이 문자 (10자리 선언하고 3자리 넣으면 낭비됨 varchar 가변길이 문자 ( 10자리 선언해도 3자리만)
2-2. 문자 데이터 타입
2-3. char vs varchar2
- 예를들어 가변형 문자형 데이터타입인 varchar2에 10이라는 공간을 할당하고 abc라고 데이터를 입력했다고 치면 그 데이터는 10이라는 데이터 공간을 할당했기 때문에 10byte까지만 데이터를 입력받을 수 있고, 3글자만 입력되었으므로 그 데이터 공간은 3byte가 됩니다.
- 반대로 고정형 문자형 데이터 타입인 char에 10이라는 데이터 공간을 할당하고 마찬가지로 abc라는 데이터 입력했다고 치면, 그 데이터는 3글자만 입력되었지만 데이터 공간은 10byte가 된다.
- 남/여 같이 1글자만 들어올 수 있는 것이 아니라면 대부분 varchar2를 사용한다.
2-4. 숫자형 데이터 타입
- NUMBER(P,S)
- 가변 숫자
- p는 소수점을 포함한 전체 자릿수를 의미하고, S는 소수점 자릿수를 의미한다. NUMBER는 가변 숫자이므로 P와 S를 입력하지 않으면 저장 데이터의 크기에 맞게 자동으로 조절된다.
입력값 타입 저장되는 값
123.89 NUMBER 123.89
123.89 NUMBER(3)-P값만 124 (반올림해서 저장)
123.89 NUMBER(4,2) 에러
123.89 NUMBER(3,2) 에러
123.89 NUMBER(5,2) 123.89
123.89 NUMBER(6,1) 123.9 (9에서 반올림해서)
2-5. 날짜 데이터 타입
- DATE를 일반적으로 사용한다.
2-6. LOB 데이터 타입
모든 기록들을 남기는게 로그파일, 데이터 타입을 대용량 처리할 때 사용.
- LOB이란 Large Object의 약자로 대용량 데이터를 저장할 수 있는 데이터 타입이다. 일반적으로 그래픽, 이미지, 사운드등 비정형 데이터를 저장할 때 LOB타입을 사용한다.
- 문자형 대용량 데이터는 CLOB나 NCLOB, 그래픽, 이미지, 동영상 등의 데이터는 BLOB을 주로 사용한다.