*오라클에서 사용하는 데이터 타입
데이터 타입 |
설명 |
CHAR(n) |
고정 길이의 문자를 저장한다. 최댓값은 2000byte. |
VARCHAR(n) |
변하는 길이의 문자를 저장한다. 최댓값은 4000byte. |
NUMBER(p, s) |
숫자 값을 저장. p는 전체릿수로 1~38자리까지 가능하고 s는 소수점이하 자릿수로 -84 ~ 127자리가 가능. |
DATE |
총 7Byte로 BC 4712년 1월 1일부터 AD 9999년 12월 31일까지의 날짜를 저장. |
LONG |
가변 길이의 문자를 저장하며 최대 2GB까지 저장할 수 있다. |
CLOB | 가변길이의 문자를 저장하면 최대 4GB까지 저장할 수 있다. |
BLOB | 가변 길이의 바이너리 데이터를 최대 4GB까지 저장할 수 있다. |
RAW(n) | 원시 이진 데이터로 최대 2000byte까지 저장할 수 있다. |
LONG RAW(n) | 원시 이진 데이터로 최대 2GB까저장할 수 있다. |
BFILE | 외부 파일에 저장된 데이터로 최대 4GB까지 저장할 수 있다. |
1. 묵시적 형 변환
- 묵시적 형 변환이라는 것은 오라클이 자동으로 형 변환을 시킨다는 뜻.
*내부적으로 아래와 같은 현상이 생긴다는 뜻이다.
SELECT 1+TO_NUMBER('1') FROM DUAL;
- 위 그림에서 1은 숫자 뒤의 '1'은 문자이다. 즉 숫자+'문자'를 계산하라고 요청한 것이다.
- 원래 산술 연산자는 숫자와 문자를 연산할 수 없기에 이런 요청이 들어오면 오라클은 에러를 발생시키지만 위처럼 숫자처럼 생긴 문자는 오라클이 자동으로 문자를 숫자로 바꾼후 연산을 수행한다.
- 위와 같은 현상을 묵시적인 형변환이라고 부르지만 튜닝에서 뜻하지 안헥 속도가 느려지는 주범이 될 수 있다.
- 묵시적 형 변환은 숫자처럼 생긴 문자만 변환해주고 그 외에는 에러를 발생시킨다.
2. 명시적 형 변환
- 명시적 형 변환은 사람이 수동으로 지정하여 형 변환을 시킨다는 것.
- 형 변환 함수는 TO_CHAR, TO_NUMBER, TO_DATE의 세 가지로 나누어진다.
- TO_CHAR 함수는 숫자와 날짜를 문자로 변환해 주는 두 가지 기능을 한꺼번에 가지고 있다.
1) TO_CHAR
- 문법 : TO_CHAR(원래 날짜, '원하는 모양')
- 년도 : 'YYYY' - 연도를 4자리로 표현 (예) 1999
'RRRR' - 2000년 이후에 Y2K버그로 인해 등장한 새로운 날짜 표기법
'YY' 연 - 도를 끝의 2자리만 표시 (예)99
'YEAR' - 연도의 영문 이름 전체를 표시
- 월 : 'MM' - 월을 숫자 2자리로 표현 (예)10
'MON' - 월을 뜻하는 영어 3글자로 표시 (예)OCT
'MONTH' - 월을 뜻하는 영어 이름 전체를 표시
- 일 : 'DD' -일을 숫자 2자리로 표시 (예) 12
'DAY' - 요일에 해당하는 영어 명칭을 표시
'DDTH' - 몇 번째 날인지를 표시
- 시간 : HH24 - 하루를 24시간으로 표시
HH - 하루를 12시간으로 표시
분 : MI로 표시
초 : SS로 표시
2) TO_CHAR 함수(숫자를 문자로 형 변환하기)
종류 |
의미 |
사용 예 |
결과 |
9 |
9 하나당 1자리를 의미 |
TO_CHAR(1234, '99999') |
1234 |
0 |
빈 자리를 0으로 표시 |
TO_CHAR(1234, '099999') |
001234 |
$ |
$ 표시를 붙여서 표시 |
TO_CHAR(1234, '$9999') |
$1234 |
. |
소수점 이하를 표시 |
TO_CHAR(1234, '9999.99') |
1234.00 |
, |
천 단위 구분 기호를 표시 |
TO_CHAR(12345, '99,999') |
12,345 |
3) TO_NUMBER 함수
문법 : TO_NUMBER('1')
4) TO_DATE
문법 : TO_DATE('문자', '날짜포맷')
*PROFESSOR 테이블을 사용하여 1990년 이전에 입사한 교수명과 입사일, 현재 연봉과 10%인상 후 연봉을 출력
연봉은 상여금(BONUS)를 제외한 (PAY*12)로 계산하고 연봉과 인상 후 연봉은 천 단위 구분기호를 추가하여 출력
'DB > ORACLE' 카테고리의 다른 글
* JOIN 원리 (2) | 2015.07.14 |
---|---|
[ORACLE] 2. 단일행 함수 - 날짜함수 (0) | 2015.02.10 |
[ORACLE] 1. 단일행 함수 - 숫자함수 (0) | 2015.02.10 |