4일차에는 숫자함수와 NULL처리에 대해서 학습했습니다.
숫자 함수는 숫자 데이터를 처리하기 위한 함수입니다.
종류 | 의미 | 예시 |
---|---|---|
ROUND | 지정한 소수점 자리로 값을 반올림 | ROUND(12.354,1) => 12.4 |
TRUNC | 지정한 소수점 자리까지 남기고 값을 버림 | TRUNC(12.34,1) => 12.3 |
MOD | m을 n으로 나눈 나머지 | MOD(12,10) => 2 |
CEIL | 지정한 값보다 큰수 중에서 가장 작은 정수 | CEIL(12.56) => 13 |
FLOOR | 지정한 값보다 작은수 중에서 가장 큰 정수 | FLOOR(12.34) => 12 |
NULL 처리에 대한 예제 코드는 다음과 같습니다.
--기존 교수 테이블을 Null값 처리
UPDATE Professor
SET comm = NVL(comm, 0)
, Audit_Date = Sysdate
WHERE comm is null
;
Null값 대한 처리는 개발자의 노하우에 따라 각각 다를 수가 있다.
현장에서 주의깊게 관찰하여 Null값에 대한 처리를 축적해 가는 것이 필요하다.
예시코드
Select profno 교수번호, name 성명, sal 급여, comm 상여
, sal+comm 지급총액
, sal+NVL(comm,0) 지급총액_1 -- Null 처리 예제 1 , NVL를 사용
, NVL(sal+comm,sal) 지급총액_2 -- Null 처리 예제 2
, NVL2(comm,sal+comm,sal) 지급총액_3 -- Comm(상여)가 Null이면 Sal반환, Not Null이라면 (sal + comm)을 반환 3
, DECODE(comm,NULL,sal,sal+comm) 지급총액_4
, Case When comm is null then sal
When comm is not null then sal+comm
else sal
END 지급총액_5
From Professor_tmp
랭크 함수는 분석함수로써 해당 함수를 활용하면 작업이 가능합니다.
똑같이 인덱스 설정이 되어 있다는 가정하에 오라클은 해쉬형태로 만들기 때문에 더 빠른 처리가 가능합니다. HASH의 주된 특징으로는 Mod함수를 통해 만들게 됩니다. 따라서 Hash는 Single Job Multi Block Access라고도 부릅니다.
플랜은 오라클에 있어서 최적의 방법이라고 합니다. 일반적으로 오라클이 최적화라고 하는 것은 Not Best But Not Worst 의 방법론을 띄고 있습니다.
Hint는 사람의 경험을 오라클에 적용하는 방법입니다.
SELECT *
FROM user_tab_partitions
;
COMPOSITE 값이 NO이면 단일 파티션이고 YES이면 Hash 파티션으로 구성되어 있다고 보면 됩니다.
※공부하고 있어 다소 틀린점이 있을 수 있습니다. 언제든지 말해주시면 수정하도록 하겠습니다.
※용어에 대해 조금 공부 더 해서 수정하겠습니다.