1. 오라클 함수 종류
오라클 함수는 함수를 제작한 주체를 기준으로 오라클에서 기본으로 제공하고 있는 내장 함수(built-in function)와 사용자가 필요에 의해 직접 정의한 사용자 정의 함수 (user-defined function)으로 나뉜다.
내장 함수는 입력 방식에 따라 데이터 처리에 사용하는 행이 나뉜다. 데이터가 한 행씩 입력되고 입력된 한 행당 결과가 하나씩 나오는 함수를 단일행 함수(single-row function)라고 한다. 반면 여러 행이 입력되어 하나의 행으로 결과가 반환되는 함수를 다중행 함수(multiple-row function)라고 한다.
2. 단일행 함수 (single-row function)
(1) 문자 데이터를 가공하는 문자 함수
대 · 소문자를 바꿔 주는 UPPER, LOWER, INITCAP 함수
함수 | 설명 |
UPPER(문자열) | 괄호 안 문자 데이터를 모두 대문자로 변환하여 반환 |
LOWER(문자열) | 괄호 안 문자 데이터를 모두 소문자로 변환하여 반환 |
INITCAP(문자열) | 괄호 안 문자 데이터 중 첫 글자는 대문자로, 나머지 문자를 소문자로 변환 후 반환 |
문자열 길이를 구하는 LENGTH 함수
LENGTH(문자열) ➡️ 문자열 길이 반환
문자열 일부를 추출하는 SUBSTR 함수
함수 | 설명 |
SUBSTR(문자열 데이터, 시작 위치, 추출 길이) | 문자열 데이터의 시작 위치부터 추출 길이만큼 추출한다. 시작위치가 음수일 경우 마지막 위치부터 거슬러 올라간 위치에서 시작한다. |
SUBSTR(문자열 데이터, 시작 위치) | 문자열 데이터의 시작 위치부터 문자열 데이터 끝까지 추출한다. 시작위치가 음수일 경우 마지막 위치부터 거슬러 올라간 위치에서 끝까지 추출한다. |
문자열 데이터 안에서 특정 문자 위치를 찾는 INSTR 함수
[기본 형식]
INSTR([대상 문자열 데이터(필수)],
[위치를 찾으려는 부분 문자(필수)],
[위치 찾기를 시작할 대상 문자열 데이터 위치(선택, 기본값은 1)],
[시작 위치에서 찾으려는 문자가 몇 번째인지 지정(선택, 기본값은 1)])
[예시]
SELECT INSTR('HELLO, ORACLE!', 'L') AS INSTR_1,
INSTR('HELLO, ORACLE!', 'L', 5) AS INSTR_2,
INSTR('HELLO, ORACLE!', 'L', 2, 2) AS INSTR_3
FROM DUAL;
[결과값]
INSTR_1 | INSTR_2 | INSTR_3 |
3 | 12 | 4 |
특정 문자를 다른 문자로 바꾸는 REPLACE 함수
[기본 형식]
REPLACE([문자열 데이터 또는 열 이름(필수)], [찾는 문자(필수)], [대체 문자(선택)])
➡️ 만약 대체할 문자를 입력하지 않으면 찾는 문자로 지정된 문자는 문자열 데이터에서 삭제된다.
데이터의 빈 공간을 특정 문자로 채우는 LPAD, RPAD 함수
데이터와 자릿수를 지정한 후 데이터 길이가 지정한 자릿수보다 작을 경우에 나머지 공간을 특정 문자로 채우는 함수이다.
[기본 형식]
LPAD([문자열 데이터 또는 열 이름(필수)], [데이터의 자릿수(필수)], [빈 공간에 채울 문자(선택)])
RPAD([문자열 데이터 또는 열 이름(필수)], [데이터의 자릿수(필수)], [빈 공간에 채울 문자(선택)])
➡️ 만약 빈 공간을 채울 문자를 지정하지 않으면 빈 공간의 자릿수만큼 공백 문자로 띄운다.
두 문자열 데이터를 합치는 CONCAT 함수
특정 문자를 지우는 TRIM, LTRIM, RTRIM 함수
문자열 데이터 내에서 특정 문자를 지우기 위해 사용한다.
(2) 숫자 데이터를 연산하고 수치를 조정하는 숫자 함수
함수 | 설명 |
ROUND | 지정된 숫자의 특정 위치에서 반올림한 값을 반환 |
TRUNC | 지정된 숫자의 특정 위치에서 버림한 값을 반환 |
CEIL | 지정된 숫자보다 큰 정수 중 가장 작은 정수를 반환(올림) |
FLOOR | 지정된 숫자보다 작은 정수 중 가장 큰 정수를 반환(내림) |
MOD | 지정된 숫자를 나눈 나머지 값을 반환 (나머지 연산) |
(3) 날짜 데이터를 다루는 날짜 함수
오라클에서 날짜 데이터, 즉 DATE형 데이터는 간단한 연산이 가능하다.
연산 | 설명 |
날짜 데이터 + 숫자 | 날짜 데이터보다 숫자만큼 일수 이후의 날짜 |
날짜 데이터 - 숫자 | 날짜 데이터보다 숫자만큼 일수 이전의 날짜 |
날짜 데이터 - 날짜 데이터 | 두 날짜 데이터 간의 일수 차이 |
날짜 데이터 + 날짜 데이터 | 연산 불가, 지원하지 않음 |
몇 개월 이후 날짜를 구하는 ADD_MONTHS 함수
[기본 형식]
ADD_MONTHS([날짜 데이터(필수)], [더할 개월 수(정수)(필수)])
➡️ 특정 날짜 데이터에 입력한 개월 수 만큼의 이후 날짜를 출력
두 날짜 간의 개월 수 차이를 구하는 MONTHS_BETWEEN 함수
[기본 형식]
MONTHS_BETWEEN([날짜 데이터(필수)], [날짜 데이터(필수)])
돌아오는 요일, 달의 마지막 날짜를 구하는 NEXT_DAY, LAST_DAY 함수
[기본 형식]
NEXT_DAY([날짜 데이터(필수)], [요일 문자(필수)])
➡️ 특정 날짜를 기준으로 돌아오는 요일의 날짜를 출력
LAST_DAY([날짜 데이터(필수)])
➡️ 특정 날짜가 속한 달의 마지막 날짜를 출력
(4) 자료형을 변환하는 형 변환 함수
종류 | 설명 |
TO_CHAR | 숫자 또는 날짜 데이터를 문자 데이터로 변환 |
TO_NUMBER | 문자 데이터를 숫자 데이터로 변환 |
TO_DATE | 문자 데이터를 날짜 데이터로 변환 |
문자를 중심으로 숫자 또는 날짜 데이터로 변환 가능하다.
'Knowledge > 이론' 카테고리의 다른 글
MyBatis (0) | 2024.07.26 |
---|---|
PL/SQL (0) | 2024.07.25 |
오라클 데이터베이스 (2) | 2024.07.23 |
JWT (Json Web Token) 이란 (0) | 2024.06.30 |
소프트웨어 아키텍처 (0) | 2024.06.27 |