본문 바로가기
Database

오라클 내장 함수 소개 : 함수란 무엇인가?

by 굿센스굿 2024. 12. 3.
반응형

 


1. 함수의 정의와 개념

함수(Function)는 특정 입력 값을 받아서 연산 또는 처리를 수행한 뒤 결과 값을 반환하는 프로그래밍 도구입니다. 오라클 데이터베이스에서 함수는 SQL 문에서 활용할 수 있는 강력한 기능으로, 데이터를 조작하거나 가공할 때 자주 사용됩니다.

오라클 함수는 크게 두 가지로 나뉩니다.

  1. 내장 함수(Built-in Function): 오라클에서 기본 제공하는 함수로, 수학, 문자열, 날짜, 변환 등의 작업을 수행합니다.
  2. 사용자 정의 함수(User-Defined Function): 사용자가 PL/SQL로 직접 정의하여 사용하는 함수입니다.

이 중 내장 함수는 대부분의 데이터 처리 작업에 필수적이며, 코드 작성 및 유지보수의 생산성을 크게 높이는 역할을 합니다.


2. 오라클 내장 함수의 종류

오라클 내장 함수는 다양한 데이터 처리 작업을 지원하며, 주요 분류는 다음과 같습니다.

  1. 문자열 함수(String Functions): 문자열 데이터를 처리하는 함수
    • CONCAT, SUBSTR, LENGTH, UPPER, LOWER, REPLACE 
  2. 숫자 함수(Number Functions): 숫자 데이터를 처리하는 함수
    • ROUND, TRUNC, MOD, ABS, POWER 
  3. 날짜 함수(Date Functions): 날짜 데이터를 처리하는 함수
    • SYSDATE, ADD_MONTHS, LAST_DAY, MONTHS_BETWEEN 
  4. 변환 함수(Conversion Functions): 데이터 타입을 변환하는 함수
    • TO_CHAR, TO_DATE, TO_NUMBER 
  5. 집계 함수(Aggregate Functions): 그룹화된 데이터를 처리하는 함수
    • SUM, AVG, COUNT, MIN, MAX 

3. 주요 오라클 내장 함수 예제

(1) 문자열 함수

문자열 데이터를 조작하거나 정보를 추출할 때 사용합니다.

-- 예시: 이름의 첫 글자 대문자로 변환  
SELECT CONCAT(UPPER(SUBSTR(name, 1, 1)), LOWER(SUBSTR(name, 2))) AS formatted_name
FROM employees;

-- 결과: 'hONGgILDONG' → 'Honggildong'

(2) 숫자 함수

숫자를 계산하거나 특정 값을 반환합니다.

-- 예시: 급여를 소수점 두 자리까지 반올림  
SELECT ROUND(salary, 2) AS rounded_salary
FROM employees;

-- 예시: 나머지 구하기
SELECT MOD(15, 4) AS remainder FROM DUAL;
-- 결과: 15 ÷ 4 = 3...3 (나머지 3)

(3) 날짜 함수

날짜와 시간 데이터를 처리할 때 사용됩니다.

-- 예시: 현재 날짜와 3개월 뒤의 날짜 확인  
SELECT SYSDATE AS today, ADD_MONTHS(SYSDATE, 3) AS three_months_later FROM DUAL;

-- 예시: 두 날짜 간의 차이 계산
SELECT MONTHS_BETWEEN(TO_DATE('2024-12-31', 'YYYY-MM-DD'), SYSDATE) AS months_diff
FROM DUAL;

(4) 변환 함수

데이터 형식을 변환하거나 특정 형식으로 출력합니다.

-- 예시: 날짜 데이터를 문자열로 변환  
SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS') AS current_date_time FROM DUAL;

-- 예시: 문자열을 숫자로 변환 후 계산
SELECT TO_NUMBER('1234') + 100 AS calculated_value FROM DUAL;

(5) 집계 함수

데이터를 그룹화하거나 요약하여 정보를 얻습니다.

-- 예시: 직원들의 평균 급여 계산  
SELECT AVG(salary) AS average_salary FROM employees;

-- 예시: 직원 수와 최고 급여 조회
SELECT COUNT(*) AS total_employees, MAX(salary) AS highest_salary FROM employees;

4. 내장 함수 활용 시 유의점

  1. 데이터 타입: 입력 값의 데이터 타입이 함수의 요구 조건에 맞지 않으면 오류가 발생할 수 있습니다. 적절한 변환 함수와 함께 사용하는 것이 좋습니다.
  2. 성능 최적화: 대량 데이터를 처리할 때는 함수가 실행 성능에 영향을 줄 수 있으므로, 필요 이상으로 중첩된 함수 사용을 피해야 합니다.
  3. 오라클 버전 호환성: 일부 내장 함수는 특정 오라클 버전에서만 지원될 수 있으므로 버전 호환성을 확인해야 합니다.

5. 결론

오라클 내장 함수는 데이터베이스 작업을 단순화하고, 데이터 처리 속도를 향상시키는 강력한 도구입니다. 문자열, 숫자, 날짜, 변환, 집계 등 다양한 유형의 내장 함수를 활용하면 데이터를 보다 효율적으로 다룰 수 있습니다.

특히, 내장 함수는 SQL 작성의 생산성을 높이고 코드의 가독성을 향상시키므로, 데이터베이스 작업에서 반드시 익혀야 할 핵심 기술입니다. 이를 잘 활용하면 오라클 데이터베이스에서 더 높은 효율성과 정확성을 달성할 수 있습니다.

반응형