오라클 내장함수
- SQL 작성이 사용할 수 있는 유용한 기능이 제공되는 함수
- DBMS 제품마다 조금씩 차이가 있다
오라클 내장함수의 종류
단일행 함수
- 조회된 행마다 하나의 결과를 반환한다
- 단일행 함수는 중첩해서 사용할 수 이싿
단일행 함수의 종류
- 문자함수 : 문자를 입력값으로 받아서 계산한 결과를 반환
- 숫자함수 : 숫자를 입력값으로 받아서 계산한 결과를 반환
- 날짜함수 : Date 타입의 값에 대한 처리를 수행
- 변환함수 : 데이터의 타입을 변환하는 처리를 수행
- 기타함수 : nvl, case, decode 등의 함수가 있다
다중행 함수(그룹함수)
- 조회된 행을 그룹으로 묶고 행 그룹당 하나의 결과를 반환한다
- group by 절을 사용해서 조회된 행을 그룹으로 묶고 다중행 함수로 각 그룹당 하나의 결과(합계, 평균, 분산, 표준편차, 최고값, 최저값) 등을 계산해 낸다.
문자함수
- LOWER (컬럼 혹은 표현식) : 소문자로 변환된 값을 반환한다
- UPPER (컬럼 혹은 표현식) : 대문자로 변환된 값을 반환한다
- CONCAT (컬럼 혹은 표현식, 컬럼 혹은 표현식) : 두 문자열을 연결해서 반환한다
- LENGTH (컬럼 혹은 표현식) : 문자열의 길이를 반환한다
- SUBSTR (컬럼 혹은 표현식, 시작위치, 길이) : 문자열을 시작위치부터 길이만큼 잘라서 반환한다.
- 시작위치는 1부터 시작
- INSTR (컬럼 혹은 표현식, 문자열) : 지정된 문자열이 등장위치를 반환한다
- TRIM (컬럼 혹은 표현식) : 불필요한 좌우 여백이 제거된다
- LPAD (컬럼 혹은 표현식, 길이, 문자) : 컬럼 혹은 표현식의 길이가 지정된 길이보다 짧으면 부족한 길이만큼 왼쪽에 지정된 문자가 채워진 문자열이 반환된다
LOWER, UPPER 사용예시
CONCAT 사용예시
CONCAT과 같은 결과를 출력하는 || 사용한 예시
LENGTH 사용예시
SUBSTR 사용예시
INSTR 사용예시
TRIM 사용예시
LPAD 사용예시
숫자함수
- ROUND (컬럼 혹은 표현수, 자리수) : 지정된 자리수까지 반올림한다 << 많이사용
- TRUNC (컬럼 혹은 표현수, 자리수) : 지정된 자리수까지 남기고 전부 버린다 << 많이사용
- MOD (숫자1, 숫자2) : 나머지 값을 반환한다
- ABS (컬럼 혹은 표현수) : 절대값을 반환한다
- CEIL (컬럼 혹은 표현수) : 값을 정수로 올림한다
- FLOOR (컬럼 혹은 표현수) : 값을 정수로 내림한다
ROUND 사용예시
TRUNC 사용예시
MOD, ABS, CEIL, FLOOR 사용예시
MOD, ABS 사용예시
SELECT MOD(10,4), ABS(-10)
FROM DUAL;
-- 결과
MOD(10, 4) = 2
ABS(-10) = 10
CEIL 사용예시
SELECT CEIL(1), CEIL(1.1), CEIL(1.5), CEIL(1.9), CEIL(2)
FROM DUAL;
--결과
CEIL(1) = 1
CEIL(1.1) = 2
CEIL(1.5) = 2
CEIL(1.9) = 2
CEIL(2) = 2
FLOOR 사용예시
SELECT FLOOR(1), FLOOR(1.1), FLOOR(1.5), FLOOR(1.9), FLOOR(2)
FROM DUAL;
-- 결과
FLOOR(1) = 1
FLOOR(1.1) = 1
FLOOR(1.5) = 1
FLOOR(1.9) = 1
FLOOR(2) = 2
날짜함수
- SYSDATE : 시스템의 현재 일자와 시간을 DATE 타입으로 반환. ( 데이터가 추가될 때, 데이터가 변경될 때 시스템의 현재 날짜와 시간정보를 저장하는 용도로 활용된다 )
- SYSTIMESTAMP : 시스템의 현재 일자와 시간을 TIMESTAMP 타입으로 변환한다
- ADD_MONTH(날짜, 숫자) : 날짜에 지정된 숫자만큼의 월을 더한 날짜를 반환한다
- EXETRACT(포맷 FROM 날짜) : 날짜에서 형식에 해당하는 값을 조회한다 ( 형식 : YEAR, MONTH, DAY, HOUR, MINUTE, SECOND )
- LAST_DAY(날짜) : 지정된 날짜를 기준으로 해당 월의 마지막 일자를 반환한다
- NEXT_DAY(날짜, 요일) : 지정된 날짜를 기준으로 월의 마지막 일자를 반환한다
- MONTHS_BETWEEN(날짜, 날짜) : 두 날짜 사이의 개월수를 반환한다
일수 관련 연산
날짜 + 숫자 = 숫자만큼 일자가 경과된 날짜를 반환
날짜 - 숫자 = 숫자만큼 이전 날짜를 반환
날짜 - 날짜 = 두 날짜사이의 일수를 반환 (날짜 +날짜는 존재하지 않는다)
날짜 + 1/24 = 1시간 이후의 날짜를 반환한다
TRUNC(날짜) : 지정된 날짜의 모든 시간 정보를 0시 0분 0초로 바꾼 날짜가 반환된다
ROUND(날짜) : 지정된 날짜의 시간정보가 정오를 지나기 전이면 해당날짜가 정오를 지났으면 하루 증가된 날짜가 반환
SYSDATE, SYSTIMESTAMP 출력 및 차이
ADD_MONTHS 사용예시
EXTRACT 사용예시
LAST_DAY, NEXT_DAY 사용예시
MONTHS_BETWEEN 사용예시
일수와 관련된 연산 예시
'SQL' 카테고리의 다른 글
SQL_Join (0) | 2023.12.13 |
---|---|
SQL_오라클 내장함수(변환함수, 기타함수) (0) | 2023.12.12 |
SQL_오라클의 데이터타입 (2) | 2023.12.07 |
SQL_테이블, DML (2) | 2023.12.06 |
SQL_데이터베이스와 SQL (0) | 2023.12.05 |