자격증/SQLD

(SQLD) 함수(Function)

Socialmi 2022. 11. 3. 17:11

1. 함수의 유형

  - 사용자 정의 함수 : 사용자가 정의한 함수

  - 내장 함수 : DBMS에서 정의된 함수

  - 단일행 함수 : 문자형, 숫자형, 날자형, 제어 함수, 변환 함수, NULL관련 함수

  - 다중행 함수 : 그룹 함수, 윈도우 함수

 

2. 문자형 함수

  - LOWER(CAR1) : 문자열을 소문자로 변환

  - UPPER(CAR1)  : 문자열을 대문자로 변환

  - ASCII(문자) : 문자를 아스키코드로 표현

  - CHR(ASCII) : 아스키코드를 문자로 표현

  - CONCAT(CAR1,CAR2) : CAR1과 CAR2를 이어서 표현

  - SUBSTR(CAR1,m,n) : 문자열의 m번 째 부터 n개를 출력

  - LENGTH(CAR1) : 문자열의 길이를 출력

  - LTRIM(CAR1,지정 문자) : 문자열의 왼쪽으로부터 지정문자를 삭제

  - RTRIM(CAR1, 지정 문자) : 문자열의 오른쪽으로부터 지정문자를 삭제

  - TRIM(CAR1) : 문자열의 양쪽에서 공백을 제거

  - TRIM(지정 문자 FROM CAR1) : 문자열의 양쪽에서 지정문자를 제거 

  - REPLACE(CAR1) : 문자열내의 공백을 모두 제거

 

3. 숫자형 함수

  - ABS(n) : 숫자를 절댓값으로 표현

  - SIGN(n) : 음수=-1 / 0=0 / 양수=1 표현

  - MOD(m,n) : m/n의 나머지를 표현

  - CEIL(n) : 같거나 큰 최소의 숫자(올림)

  - FLOOR(n) : 같거나 작은 최대의 숫자(내림)

  - ROUND(m,n) : 소숫점n 자리수 까지 표현, n+1자리수에서 반올림

  - TRUNC(m,n) :  소숫점n 자리수 까지 표현, n+1자리수에서 절삭

 

4. 변환형 함수

  - TO_CHAR(숫자|날자) : 숫자나 날자를 문자로 변환

  - TO_CHAR(숫자|날자, FORMAT) : FORMAT = 'YYYY/MM/DD'로 지정시 해당 형식을 지닌 문자로 변환

  - TO_NUMBER(CAR) : 문자열을 숫자로 변환

  - TO_DATE(CAR) : 문자열을 날자로 변환

  * 날자+1은 1당 1Day를 의미함

 

5. 날자형 함수

  - SYSDATE : 현재 날자와 시각을 표현

  - EXTRACT('YYYY'|'MM'|'DD' FROM 날자) : 날자 부분추출

  - TRUNC(날자,'DD') : Day까지만 표기, YY,MM등으로 조정 가능

 

6. CASE Expression

: 표현식 이지만 함수의 성격을 지님, IF-THEN-ELSE의 논리 흐름, 중첩이 가능함

SELECT COL,
CASE
	WHEN COL1 = '1' THEN '일'
    	WHEN COL1 = '2' THEN '이'
    	WHEN COL1 = '3' THEN '삼'
   	WHEN COL1 = '4' THEN '사'
    ELSE '그 외'
    END AS 숫자
FROM TAB;

SELECT COL,
CASE COL1
	WHEN '1' THEN '일'
   	WHEN '2' THEN '이'
   	WHEN '3' THEN '삼'
   	WHEN '4' THEN '사'
    ELSE '그 외'
    END AS 숫자
FROM TAB;

/*실행 결과는 동일*/

 

7. DECODE(Oracle 에서만 지원)

: DECODE(표현식, 기준값1, 출력값2, 기준값2, 출력값2, 기준값3, 출력값3 .... 디폴트값) 으로 사용됨

SELECT COL1
	DECODE(NUMBER,
    	'1', '일',
        '2', '이',
        '3', '삼',
        '4', '사', '모름') AS NUMBER
FROM TAB1;

 

8. NULL관련 함수

: NULL은 공백, '0', 공집합과는 다른의미

 

  - NVL(표현식, 대체값) : 표현식의 값이 NULL이면 대체값 표현, NULL이 아니면 표현식 그대로 출력, 표현식과 대체값의 데이터 타입은 동일해야함

  - NULLIF(표현식1, 표현식2) : 두 식이 같으면 NULL, 같지 않으면 표현식1의 값을 반환

  - COALESCE(표현식1, 표현식2, 표현식3......) : 임의의 개수의 표현식에서 NULL이 아닌 최초의 표현식을 반환, 모든 표현식이 NULL일 때 NULL반환

728x90