IT
오라클 함수(FUNCTION)
carnival6103
2025. 1. 30. 22:32
반응형
오라클 데이터베이스에서 제공하는 모든 내장 함수를 예시와 함께 설명하는 것은 매우 방대한 작업입니다.
하지만 주요 함수들을 카테고리별로 정리하고, 각 함수의 예시를 포함하여 설명해 드리겠습니다.
이 목록은 자주 사용되는 함수들을 중심으로 구성되었습니다.
1. 문자열 함수 (String Functions)
- UPPER: 문자열을 대문자로 변환합니다.
SELECT UPPER('oracle database') FROM DUAL;
-- 결과: 'ORACLE DATABASE'
- LOWER: 문자열을 소문자로 변환합니다.
SELECT LOWER('ORACLE DATABASE') FROM DUAL;
-- 결과: 'oracle database'
- INITCAP: 문자열의 첫 글자를 대문자로, 나머지는 소문자로 변환합니다.
SELECT INITCAP('oracle database') FROM DUAL;
-- 결과: 'Oracle Database'
- SUBSTR: 문자열의 일부를 추출합니다.
SELECT SUBSTR('oracle database', 1, 6) FROM DUAL;
-- 결과: 'oracle'
- INSTR: 문자열 내에서 특정 문자열의 위치를 반환합니다.
SELECT INSTR('oracle database', 'database') FROM DUAL;
-- 결과: 8
- REPLACE: 문자열 내의 특정 문자열을 다른 문자열로 대체합니다.
SELECT REPLACE('oracle database', 'database', 'DB') FROM DUAL;
-- 결과: 'oracle DB'
2. 숫자 함수 (Number Functions)
- ROUND: 숫자를 지정된 소수점 자리로 반올림합니다.
SELECT ROUND(123.456, 2) FROM DUAL;
-- 결과: 123.46
- TRUNC: 숫자를 지정된 소수점 자리로 자릅니다.
SELECT TRUNC(123.456, 2) FROM DUAL;
-- 결과: 123.45
- MOD: 나머지를 반환합니다.
SELECT MOD(10, 3) FROM DUAL;
-- 결과: 1
- ABS: 절대값을 반환합니다.
SELECT ABS(-15) FROM DUAL;
-- 결과: 15
- POWER: 거듭제곱 값을 반환합니다.
SELECT POWER(2, 3) FROM DUAL;
-- 결과: 8
3. 날짜 함수 (Date Functions)
- SYSDATE: 현재 날짜와 시간을 반환합니다.
SELECT SYSDATE FROM DUAL;
-- 결과: 현재 날짜와 시간 (예: 2025-01-30 22:30:00)
- ADD_MONTHS: 지정된 개월 수만큼 날짜를 더합니다.
SELECT ADD_MONTHS(SYSDATE, 6) FROM DUAL;
-- 결과: 현재 날짜에서 6개월 후의 날짜
- MONTHS_BETWEEN: 두 날짜 사이의 개월 수를 반환합니다.
SELECT MONTHS_BETWEEN(SYSDATE, '2025-01-01') FROM DUAL;
-- 결과: 현재 날짜와 2025-01-01 사이의 개월 수
- NEXT_DAY: 지정된 요일의 다음 날짜를 반환합니다.
SELECT NEXT_DAY(SYSDATE, 'MONDAY') FROM DUAL;
-- 결과: 현재 날짜 기준 다음 월요일의 날짜
- LAST_DAY: 주어진 날짜의 해당 월의 마지막 날짜를 반환합니다.
SELECT LAST_DAY(SYSDATE) FROM DUAL;
-- 결과: 현재 날짜가 속한 월의 마지막 날짜
4. 변환 함수 (Conversion Functions)
- TO_CHAR: 숫자나 날짜 데이터를 문자열로 변환합니다.
SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD') FROM DUAL;
-- 결과: '2025-01-30'
- TO_NUMBER: 문자열을 숫자로 변환합니다.
SELECT TO_NUMBER('12345') FROM DUAL;
-- 결과: 12345
- TO_DATE: 문자열을 날짜로 변환합니다.
SELECT TO_DATE('2025-01-30', 'YYYY-MM-DD') FROM DUAL;
-- 결과: 2025-01-30
5. 일반 함수 (General Functions)
- NVL: NULL 값을 다른 값으로 대체합니다.
SELECT NVL(commission_pct, 0) FROM employees;
-- 결과: commission_pct가 NULL이면 0으로 대체
- DECODE: 조건에 따라 다른 값을 반환합니다.
SELECT DECODE(department_id, 10, 'ADMIN', 20, 'SALES', 'OTHER') FROM employees;
-- 결과: department_id에 따라 다른 문자열 반환
6. 집계 함수 (Aggregate Functions)
- SUM: 열의 합계를 구합니다.
SELECT SUM(salary) FROM employees;
-- 결과: 모든 직원의 급여 합계
- AVG: 열의 평균을 구합니다.
SELECT AVG(salary) FROM employees;
-- 결과: 모든 직원의 평균 급여
- COUNT: 열의 개수를 셉니다.
SELECT COUNT(*) FROM employees;
-- 결과: 직원 수
7. 분석 함수 (Analytic Functions)
- ROW_NUMBER: 결과 집합 내에서 각 행의 순번을 반환합니다.
SELECT employee_id, salary, ROW_NUMBER() OVER (ORDER BY salary DESC) AS row_num FROM employees;
-- 결과: 급여 순으로 정렬된 각 직원의 순번
- RANK: 결과 집합 내에서 각 행의 순위를 반환합니다.
SELECT employee_id, salary, RANK() OVER (ORDER BY salary DESC) AS rank FROM employees;
-- 결과: 급여 순으로 정렬된 각 직원의 순위
- DENSE_RANK: 결과 집합 내에서 각 행의 순위를 반환하며, 동일한 값에 대해 동일한 순위를 부여합니다.
SELECT employee_id, salary, DENSE_RANK() OVER (ORDER BY salary DESC) AS dense_rank FROM employees;
-- 결과: 급여 순으로 정렬된 각 직원의 순위 (동일한 값에 동일한 순위)
- NTILE: 결과 집합을 지정된 수의 그룹으로 나눕니다.
SELECT employee_id, salary, NTILE(4) OVER (ORDER BY salary DESC) AS quartile FROM employees;
-- 결과: 급여 순으로 정렬된 각 직원의 사분위수
이 예시들이 오라클의 다양한 내장 함수를 이해하고 활용하는 데 도움이 되길 바랍니다.
반응형