[DB] 오라클 내장 함수
오라클 내장함수
- 단일행 함수
- 행 당 하나의 결과를 반환한다.
- 조회된 각 행에 대해서 함수가 실행된다.
- 중첩해서 사용할 수 있다.
문자함수
LOWER(표현식) // 소문자로 변환 후 반환한다.
UPPER(표현식) // 대문자로 변환 후 반환한다.
LENGTH(표현식) // 문자의 길이를 반환한다.
CONCAT(표현식1, 표현식2) // 문자를 이어붙여서 반환한다.
SUBSTR(표현식, 시작위치) //시작위치에서 끝까지 잘라낸 문자를 반환한다.
SUBSTR(표현식, 시작위치, 길이) // 시작위치에서 지정된 길이만큼 잘라낸 문자를 반환한다.
INSTR(표현식, '문자') // 지정된 문자가 등장하는 위치를 반환한다.(1부터 시작)
LPAD(표현식, 길이, '문자') // 지정된 길이보다 짧으면 모자란 갯수만큼 왼쪽에 지정된 문자를 붙여서 반환한다.
RPAD(표현식, 길이, '문자') // 지정된 길이보다 짧으면 모자란 갯수만큼 오른쪽에 지정된 문자를 붙여서 반환한다.
TRIM(표현식) // 불필요한 공백을 제거한 후 반환한다.
REPLACE(표현식, '변경할 문자', '새문자') // 문자를 찾아서 새문자로 바꾼 다음 반환한다.
숫자함수
- ROUND와 TRUNC에서 숫자값이 양수면 소숫점 자리수를 나타내고, 0이면 1의 자리수, 음수면 10의 자리수 이상을 나타낸다.
ROUND(표현식, 숫자) // 지정된 숫자의 자리수까지 반올림한다.
TRUNC(표현식, 숫자) // 지정된 숫자의 자리만 남기고 나머지는 버린다.
MOD(숫자1, 숫자2) // 숫자1에 대한 숫자2의 나머지값을 반환한다.
날짜함수
- 날짜관련 연산을 할 때는 TRUNC()를 사용해서 날짜에서 시분초를 0으로 만든 다음 연산을 수행하자.
SYSDATE // 매개변수값이 필요없어서 괄호는 생략하고 사용한다.
// 시스템의 현재 날짜와 시간정보를 반환한다.
MONTHS_BETWEEN(날짜, 날짜) // 두 날짜사이의 개월 수를 반환한다.
ADD_MONTHS(날짜, 숫자) // 날짜에 숫자만큼 경과된 개월 수의 날짜를 반환한다.
ROUND(날짜) // 가장 가까운 날짜로 반올림한다.
TRUNC(날짜) // 가장 가까운 날짜에 맞춰 버려진다.
NEXT_DAY(날짜, 요일) // 지정된 날짜를 기준으로 다음 번 해당 요일의 날짜를 반환한다.
// 요일: 1-일요일, 2-월요일, ..., 7-토요일
LAST_DAY(날짜) // 지정된 날짜가 속해있는 달의 마지막 날짜를 반환한다.
시간과 관련된 연산
DATE + 숫자 = 숫자만큼 경과된 DATE
DATE - 숫자 = 숫자만큼 이전의 DATE
DATE - DATE = 두 날짜간의 간격을 일 단위로 반환
*
변환함수
TO_CHAR(날짜, '포맷형식') // 날짜를 지정된 포맷형식의 텍스트로 반환한다.
TO_DATE(문자, '패턴형식') // 문자가 지정된 패턴형식으로 작성되어 있으면 날짜로 변환해서 반환한다.
TO_CHAR(숫자, '포맷형식') // 숫자를 지정된 포맷형식의 텍스트로 반환한다.
TO_NUMBER(문자, '패턴형식') // 문자가 지정된 패턴형식으로 작성되어 있으면 숫자로 변환해서 반환한다.
* 날짜형식 기호
YYYY 네자리 년도
MM 월
DD 일
DAY 요일
AM 오전/오후
HH 12시간제
HH24 24시간제
MI 분
SS 초
* 숫자형식 기호
9 숫자를 표시한다.
0 0을 강제로 표시한다.
, 천단위 구분자를 표시한다.
. 소숫점을 표시한다.
기타함수
- 표현식은 컬럼이름 혹은 연산식을 말한다.
NVL(표현식, 값)
표현식의 값이 NULL이 아니면 표현식의 값이 반환되고,
표현식의 값이 NULL이면 지정된 값이 반환된다.
* 표현식의 값의 타입과 대체할 값의 타입은 동일해야 한다.
NVL2(표현식, 값1, 값2)
표현식의 값이 NULL이 아니면 값1이 반환되고,
표현식의 값이 NULL이면 값2가 반환된다.
* 값1과 값2의 타입은 동일해야 한다.
DECODE(표현식, 값1, 결과값1
값2, 결과값2
값3, 결과값3
결과값4)
표현식의 값이 값1과 일치하면 결과값1이 반환되고,
값2와 일치하면 결과값2가 반환된다.
표현식과 일치하는 값이 존재하지 않으면 결곽값4가 반환된다.
CASE
WHEN 조건식1 THEN 결과값1
WHEN 조건식2 THEN 결과값2
ELSE 결과값3
END
조건식1이 TRUE면 결과값1이 최종값이 되고,
조건식2가 TRUE면 결과값2가 최종값이 된다.
모든 조건식이 FALSE로 판정되면 결과값3이 최종값이 된다.
다중행 함수
- 행 집합에 적용되며, 각 그룹당 하나의 결과를 반환한다.
- 행 집합은 테이블 전체 또는 그룹화된 테이블이다.
- 합계, 평균, 최대값, 최소값, 분산, 표준편차 등을 구할 수 있다.