본문 바로가기

프로그래밍/SQL

[SQL 요약 정리] 1-4. 내장 함수(STORED FUNCTION)

4. 내장 함수(STORED FUNCTION)


1) 함수

- 단일 행 함수(Single Row Function): 문자형, 숫자형, 날짜형, 변환형

- 다중 행 함수(Multi Row Function): 그룹 함수

*여러 함수를 겹쳐서 사용 가능


2) 문자형 함수

- UPPER(''): 대문자 변환

- LOWER(''): 소문자 변환

- INITCAP(''): 첫 글자만 대문자로 변환

- CONCAT('', ''): 두 문자값 결합

- SUBSTR('',a,b): 문자 추출 // a -> 시작인덱스 / b -> 추출 개수

- LENGTH(''): 문자열 길이 반환

- LPAD('a',b,'c'), RPAD('a',b,'c'): 'a'를 b크기의 공간에 입력하고 좌우측 공간을 'c'로 채움

- LTRIM, RTRIM('a', 'b'): 'a'에서 'b'를 만날 때 까지 좌우측에서부터 삭제

- TRANSLATE('a','b','c'): 'a' 문자열 중에서 'b'를 'c'로 대체   // 'b'와 'c'의 1:1 변환

- REPLACE('a','b','c'): 'a' 문자열 중에서 'b'를 'c'로 대체 // 'b'에 정확히 일치하지 않으면 변환X

* ('ABCDEFGHI','BDF','123') 수행 시 replace는 변환X, translate는 'A1C2E3GHI' 반환


3) 숫자형 함수

- ROUND(a, b): 반올림 // a를 소수점 b자리수까지 반환 (아래값 반올림)

- TRUNC(a, b): 절사 // a를 소수점 b자리까지 반환 (아래값 버림)

- MOD(a, b): 나머지 반환 // a를 b로 나눈 나머지 반환

- POWER(a, b): 거듭제곱 // a의 b승

- SQRT(a): 제곱근 // 루트a

- SIGN(a): 양수, 음수, 0 판별 // -1, 0, 1만 반환

- CHR(a): ASCII값 해당 문자 반환 // if(a=65) return A;


4) 날짜형 함수

- SYSDATE: 현재 시스템의 날짜 및 시간 반환

- LAST_DAY('a'): a에 해당하는 월의 마지막 날짜 반환 // ex) 날짜입력 예시 18/11/27

- MONTHS_BETWEEN('a','b'): a와 b의 차이 일자 반환  

- ADD_MONTHS('a',b): 'a'로부터 b달 후 반환

- ROUND('a', 'b'): 'a'에 가까운 'b' 반환(반올림) // ex) '18/11/27', 'MONTH' -> '18/12/01'

- TRUNC('a', 'b'): 'a'에 해당하는 'b'의 첫 날 반환 // ex) '18/11/27', 'year' -> '18/01/01'

*sysdate 입력시 시간이 삭제되고 날짜까지만 표시


5) 변환형 함수

- TO_CHAR(문자값,'형식'): 숫자나 날짜를 문자열로 변환

*0: 빈자리를 0으로 채움 / $: 달러 / L: 지역통화단위 / .: 소수점 표시 / ,: 천단위 표시

ex) (3500000, '$999,999') -> $350,000 / (SYSDATE, 'YYYY/MM/DD') -> 2018/11/27

- TO_NUMBER('a'): 문자를 숫자로 변환 // ex) '1234' -> 1234

- TO_DATE(문자값, '형식'): 문자를 날짜로 변환


요소

의미

요소

의미

SCC

세기 (S: 기원전)

DAY

해당 요일

YEAR

연도

DY

해당 요일 약어

YYYY

네자리 연도

DDD,DD,D

연, 월, 일 중의 날짜를 숫자표시

YY

끝 두 자리 연도

HH, HH24

(1-12), (0-23)

MONTH

월(9월 OR SEPTEMBER)

MI

MON

월(9월 OR SEP)

SS

MM

두 자리 월

AM(A.A.)

PM(P.M.)

오전 OR 오후


6) 그룹함수

- COUNT(a): 행의 수 반환

- AVG(a): 평균

- SUM(a): 합계

- MIN(a): 최소값

- MAX(a): 최대값

- STDDEV(a): 표준 편차

- VARIANCE(a): 분산

*count(*)을 제외한 그룹함수는 null값을 고려하지 않음