SQL 함수
-
함수 유형
- 단일 행 함수: 단일 행만 연산하며 행 당 하나의 결과를 반환.
- 여러 행 함수: 행 그룹을 조작해서 행 그룹 당 하나의 결과를 제공하도록 하는 함수(그룹 함수)
- 단일 행 함수
- 데이터 항목을 조작한다
- 인수를 사용하고 값을 하나 반환한다
- 반환되는 각 행에 대해 작업한다
- 행 당 하나의 결과를 반환한다
- 데이터 유형을 수정할 수 있다
- 중첩될 수 있다
- 열 또는 표현식을 인수로 사용할 수 있다.
즉, 단일 행 함수는 데이터 항목을 조작할 수 있으며 단일 행 함수에는 인수를 하나 이상 사용할 수 있으며 질의에서 반환하는 행마다 하나의 값을 반환한다.
- 인수로 사용 가능 한 것
- 단일 행 함수의 기능
- 질의에서 반환되는 각 행에 대해 작업한다
- 행 당 하나의 결과를 반환한다
- 참조한 데이터 값과 다른 유형의 데이터 값을 반환할 수 있다
- 인수를 하나이상 사용할 수 있다.
- SELECT, WHERE 및 ORDER BY 절에 사용할 수 있으며 중첩될 수 있다.
- 구문 설명:
function_name 함수 이름입니다.
arg1, arg2 함수에서 사용하는 인수입니다. 열 이름 또는 표현식을 사용할 수 있습니다.
-
단일 행 함수 타입
- 문자 함수: 문자를 입력 값으로 받으며 문자 또는 숫자 값을 반환합니다.
- 숫자 함수: 숫자를 입력하면 숫자 값을 반환합니다.
- 날짜 함수: DATE 데이터 유형의 값에 동작합니다. 모든 날짜 함수는 DATE 데이터 유형 값을 반환하며 MONTHS_BETWEEN 함수만 숫자를 반환합니다.
- 변환 함수: 값의 데이터 유형을 변환합니다.
- 일반 함수
- NVL
- NVL2
- NULLIF
- COALSECE
- CASE
- DECODE
-
단일 - 문자 함수
- 여기서
LOWER
, UPPER
, INITCAP
은 대소문자 조작함수이다.
대소문자 조작 함수
- LOWER: 대소문자 또는 대문자 문자열을 소문자로 변환합니다.
- UPPER: 대소문자 또는 소문자 문자열을 대문자로 변환합니다.
- INITCAP: 각 단어의 첫 문자는 대문자로, 나머지 문자는 소문자로 변환합니다.
숫자 함수 "DUAL" 넣어주기
-
ROUND: 지정한 소수점 자리로 값을 반올림합니다
ROUND(45.926, 2)
---→ 45.93
- 열, 표현식 또는 값을 소수점 n째 자리로 반올림 한다
- n을 지정하지 않은 경우 소수점 이하 값 사라진다
- n이 음수이면 소수점 왼쪽이 수가 반올림 된다.
-
TRUNC: 지정한 소수점 자리까지 남기고 값을 버립니다.
TRUNC(45.926, 2)
---→ 45.92
- n을 지정하지 않은 경우 기본값이 0이 된다.
-
MOD: 나눗셈의 나머지를 반환합니다. MOD(m,n)
MOD(1600, 300)
---→ 100
-
m을 n으로 나눈 나머지를 반환한다.
-
값이 홀수인지 짝수인지 확인하는 데 많이 사용된다.
-
DUAL
- FROM 다음에 붙이며, 함수 및 계산 결과를 보는데 사용할 수 있는 더미 테이블(dummy table)이다.
- 절을 완성하기 위해 끼워넣은거~
날짜 사용
SELECT SYSDATE
FROM DUAL
- 날짜 계산
- 날짜에 숫자를 더하거나 빼서 날짜 값을 계산합니다.
- 한 날짜에서 다른 날짜를 빼서 날짜 간의 일 수를 알 수 있습니다.
- 시간을 24시간으로 나누어 날짜에 시간을 더합니다.
select last_name, (sysdate-hire_date) / 7 as weeks
from employees
where department_id = 90;
설명: 부서 90에 있는 모든 사원의 이름과 근무한 주 수를 표시한다
그리고 현재 날짜(sysdate)에서 입사일을 뺀 후 결과를 7로 나누어 사원이 근무한 주 수를 계산한다.
(과거 날짜에서 현재 날짜를 빼는 경우 차이는 음수 값이 된다)
날짜함수
- MONTHS_BETWEEN(date1, date2): date1과 date2 간의 달 수를 계산합니다.
- 결과는 양수(date1이 date2보다 나중인 경우) 또는 음수(date1이 date2 보다 먼저인 경우)
- 결과 중 정수가 아닌 부분은 달의 일부를 나타낸다.
- ADD_MONTHS(date, n): date에 n 달을 더합니다. n 값은 정수여야 하며 음수일 수 있습니다.
- NEXT_DAY(date, 'char'): date를 포함하는 달의 마지막 날짜를 찾습니다.
- ROUND(date[, 'fmt']): 형식 모델 fmt에 의해 지정된 단위로 반올림한 date를 반환한다.
형식 모델 fmt를 생랼하면 date는 가장 가까운 날로 반올림됩니다.
- TRUNC(date[, 'fmt']): 날짜의 시간 부분을 형식 모델 fmt로 지정한 단위까지 남기고 버린 후 반환한다. 형식 모델 fmt를 생략하면 date는 가장 가까운 날에 맞추어 버려진다.