[Oracle DB] Oracle DB 함수

방용환·2023년 5월 2일
0
post-thumbnail

1. Oracle DB 함수

  • 함수 (FUNCTION) : 매개변수로 전달받은 값을 가공하여 처리하여 결과값을 반환하는 기능을 제공
  • 단일함수 : 하나의 값을 전달받아 가공하여 결과값을 반환하는 함수
    => 문자함수, 숫자함수, 날짜함수, 변환함수, 일반함수
  • 그룹함수 : 다수의 값을 전달받아 가공하여 결과값을 반환하는 함수

2. 단일함수

1. 문자함수

  • 문자함수 : 매개변수로 문자값을 전달받아 가공하여 결과값을 반환하는 함수
  • UPPER(문자값) : 문자값을 전달받아 대문자로 변환하여 반환하는 함수
  • LOWER(문자값) : 문자값을 전달받아 소문자로 변환하여 반환하는 함수
  • INITCAP(문자값) : 문자값을 전달받아 첫번째 문자만 대문자로 변환하고 나머지 문자는 소문자로 변환하여 반환하는 함수
  • CONCAT(문자값, 문자값) : 두개의 문자값을 전달받아 결합하여 반환하는 함수
    => ' | | ' 기호를 사용하는 것과 유사한 기능 제공
  • SUBSTR(문자값, 시작위치, 개수) : 문자값을 전달받아 시작위치부터 개수만큼의 문자들을 분리하여 반환하는 함수
  • LENGTH(문자값) : 문자값을 전달받아 문자 개수를 반환하는 함수
  • INSTR(문자값, 검색문자값, 시작위치, 검색위치) : 문자값을 전달받아 검색문자값의 시작위치(첨자)부터 검색하여 원하는 위치의 문자값의 시작첨자를 반환하는 함수
    => 검색문자값이 없는 경우 0 반환
  • LPAD(문자값, 자리수, 채울 문자) : 문자값을 전달받아 자리수의 길이만큼 오른쪽부터 채우고 왼쪽 남는 자리에는 채울 문자로 채운 문자값을 반환하는 함수
  • RPAD(문자값, 자리수, 채울 문자) : 문자값을 전달받아 자리수의 길이만큼 왼쪽부터 채우고 오른쪽 남는 자리에는 채울 문자로 채운 문자값을 반환하는 함수
  • TRIM({LEADING|TRAILING} 제거문자 FROM 문자값) : 문자값을 전달받아 앞(LEADING) 또는 뒤(TRAILING)에 존재하는 제거문자를 삭제하고 반환하는 함수
  • REPLACE(문자값, 검색문가밧, 치환문자값) : 문자값을 전달받아 검색문자값을 찾아 치환문자값으로 변환하여 반환하는 함수

2. 숫자함수

  • DUAL 테이블 : 테이블 없이 검색대상을 SELECT 명령으로 작성할 경우 사용되는 가상의 테이블
  • ROUND(숫자값, 소수점 자리수) : 숫자값을 전달받아 소수점 자리수 위치만큼 검색되도록 반올림 처리하여 반환하는 함수
  • TRUNC(숫자값, 소수점 자리수) : 숫자값을 전달받아 소수점 자리수 위치만큼 검색되도록 절삭 처리하여 반환하는 함수
  • CEIL(숫자값) : 숫자값을 전달받아 소수점 이하값이 존재할 경우 증가된 숫자값(정수값)을 반환하는 함수
  • FLOOR(숫자값) : 숫자값을 전달받아 소수점 이하값이 존재할 경우 감소된 숫자값(정수값)을 반환하는 함수
  • MOD(숫자값1, 숫자값2) : 두개의 숫자값을 전달받아 숫자값1을 숫자값2로 나눈 나머지를 반환하는 함수
  • POWER(숫자값1, 숫자값2) : 두개의 숫자값을 전달받아 숫자값1에 숫자값2의 제곱근을 반환하는 함수

3. 날짜함수

  • 날짜함수 : 매개변수로 날짜값을 전달받아 가공하여 결과값을 반환하는 함수
  • 오라클에 접속된 현재 사용자 환경에 따라 사용 언어 및 날짜와 시간 패턴이 다르게 적용
  • SYSDATE : 시스템의 현재 날짜와 시간을 제공하기 위한 키워드
    => SYSDATE 키워드의 검색값은 기본적으로 [RR/MM/DD] 패턴으로 검색되지만 내부적으로는 날짜와 시간 제공
  • ADD_MONTHS(날짜값, 숫자값) : 날짜값을 전달받아 숫자값만큼 개월수를 더한 날짜값을 반환하는 함수
    => 날짜값은 '+', '-' 연산자를 이용하여 연산 가능
  • NEXT_DAY(날짜값, 요일) : 날짜값을 전달받아 미래의 특정 요일에 대한 날짜값을 반환하는 함수
  • TRUNC(날짜값, 표현단위) : 날짜값을 전달받아 원하는 단위만 표현하고 나머지는 절삭하여 초기값으로 반환하는 함수

4. 변환함수

  • 변환함수 : 매개변수로 전달받은 값을 원하는 자료형의 값으로 변환하여 반환하는 함수
  • TO_NUMBER(문자값) : 문자값을 전달받아 숫자값으로 변환하여 반환하는 함수
    => 매개변수로 전달받은 문자값에 숫자가 아닌 형태의 문자가 존재할 경우 에러 발생
  • TO_DATE(문자값,(패턴문자)) : 문자값을 전달받아 날짜값으로 변환하여 반환하는 함수
    => 날짜와 시간 관련 패턴문자를 사용하여 문자값을 전달받아 원하는 패턴의 날짜값으로 변환
  • TO_CHAR({숫자값|날짜값}, 패턴문자) : 숫자값 또는 날짜값을 전달받아 원하는 패턴의 문자값으로 변환하여 반환하는 함수
    => 숫자패턴문자 : 9(숫자 또는 공백), 0(숫자), L(화폐단위), $(달러)

5. 일반함수

  • 일반함수 : 매개변수로 전달받은 값이 특정 조건에 참인 경우변경값으로 변환하여 반환하는 함수
  • NVL(전달값, 변경값) : 전달값이 NULL인 경우 변경값으로 변환하여 반환하는 함수
    => 변경값은 전달값과 동일한 자료형의 값으로 변경 가능
  • NVL2(전달값, 변경값1, 변경값2) : 전달값이 NULL이 아닌 경우 변경값1로 변환하여 반환하고 NULL인 경우 변경값2로 변환하여 반환하는 함수
  • DECODE(전달값, 비교값1, 변경값1, 비교값2, 변경값2, ...(기본값)) : 전달값을 비교값과 차례대로 비교하여 같은 경우 변경값으로 변환하여 반환하는 함수
    => 비교값이 모두 다른 경우 기본값으로 변환하여 반환 (기본값이 생략된 경우NULL 반환)

3. 그룹함수

1. 그룹함수

  • 그룹함수 : 매개변수로 다수의 값을 전달받아 가공하여 결과값을 반환하는 함수
  • 그룹함수는 다른 검색대상과 같이 사용할 경우 그룹함수와 검색대상의 검색행의 개수가 다르므로 에러 발생
  • 그룹함수는 NULL을 값으로 처리하지 않는 결과값 반환
  • COUNT(컬럼명) : 매개변수로 전달받은 컬럼값의 개수를 반환하는 함수
  • MAX(컬럼명) : 매개변수로 전달받은 컬럼값 중 최대값을 반환하는 함수
  • MIN(컬럼명) : 매개변수로 전달받은 컬럼값 중 최소값을 반환하는 함수
  • SUM(컬럼명) : 매개변수로 전달받은 컬럼값의 합계를 계산하여 반환하는 함수
  • AVG(컬럼명) : 매개변수로 전달받은 컬럼값의 평균을 계산하여 반환하는 함수

2. GROUP BY

  • GROUP BY : 그룹함수 사용시 컬럼값으로 그룹을 여러개 구분하여 검색하는 기능
  • 컬럼값이 같은 경우 같은 그룹으로 처리하여 그룹함수의 결과값 반환
SELECT 그룹함수(컬럼명)[, 검색대상, ...] FROM 테이블명 [WHERE 조건식]
	GROUP BY {컬럼명|연산식|함수}, {컬럼명|연산식|함수}, ...
    	[ORDER BY {컬럼명|연산식|별칭|COLUMN_INDEX} {ASC|DESC}]
  • HAVING : GROUP BY에 의해 그룹화된 검색결과에서 그룹조건이 참인 행을 검색하는 기능
SELECT 그룹함수(컬럼명)[, 검색대상, ...] FROM 테이블명 [WHERE 조건식]
	GROUP BY {컬럼명|연산식|함수}, {컬럼명|연산식|함수}, ... HAVING 그룹조건식
    	[ORDER BY {컬럼명|연산식|별칭|COLUMN_INDEX} {ASC|DESC}]

0개의 댓글