상세 컨텐츠

본문 제목

[SQL 전문가 가이드] 함수(Function)

공부/DB

by 비렴 2022. 9. 3. 21:33

본문

1. 내장함수(BUILT-IN FUNCTION)
    내장함수 : 벤더에서 제공하는 함수
        - 단일행함수
        - 다중행함수
            + 집계함수
            + 그룹함수
            + 윈도우함수

2. 문자형함수 : 문자데이터를 매개변수로 받아들여 문자나 숫자 값의 결과를 돌려주는 함수
    UPPER(문자열) : 문자열의 알파벳문자를 대문자로 바꿔준다
    LOWER(문자열) : 문자열의 알파벳문자를 소문자로 바꿔준다
    CHR/CHAR(ASCII 번호) : ASCII 코드 번호를 문자나 숫자로 바꿔준다
    SUBSTR/SUBSTRING(문자열, m [,n]) : 문자열 중 m위치에서 n개의 문자 길이에 해당하는 문자를 돌려준다.
                                                                    n을 생략하면 마지막 문자까지
    LENGTH/LEN(문자열) : 문자열의 개수를 돌려준다
    TRIM([leading | trailing | both] 지정문자 FROM 문자열) : 문자열에서 머리말, 꼬리말 또는 양쪽에 있는 지정문자를 제거
한다.
                                                                                              default는 both, SQL Server에서는 TRIM함수에 지정문자를 사용할 수 없다.
                                                                                              즉, 공백만 제거할 수 있다.
    LTRIM(문자열[,지정문자]), RTRIM(문자열[,지정문자]) : L은 처음부터, R은 마지막부터 확인

3. 숫자형함수 : 숫자 데이터를 입력받아 처리하고 숫자를 리턴하는 함수
    ABS(숫자) : 숫자의 절대값을 돌려준다
    SIGN(숫자) : 양수인지, 음수인지, 0인지 구별한다
    MOD(숫자1, 숫자2) : 숫자 1을 숫자 2로 나누어 나머지값을 리턴한다
    CEIL/CEILING(숫자) 숫자보다 크거나 같은 최소 정수를 리턴한다
    FLOOR(숫자) : 숫자보다 작거나 같은 최대 정수를 리턴한다
    ROUND(숫자 [,m]) : 숫자를 소수점 m자리에서 반올림하여 리턴한다. 디폴트는 0
    TRUNC(숫자 [,m N ]) : 숫자를 소수 m자리에서 잘라서 버린다 디폴트는 0
                                         SQL Server에서는 제공X
    SIN, COS, TAN : 숫자의 삼각함수 값을 리턴한다
    EXP(), POWER(), SQRT(), LOG(), LN() : 숫자의 지수, 거듭 제곱, 제곱근, 자연 로그 값을 리턴한다.

4. 날짜형함수 : DATE타입의 값을 연산하는 함수
    SYSDATE/GETDATE() : 현재 날짜와 시각을 출력한다
    EXTRACT('YEAR'|'MONTH'|'DAY' FROM d)/DATEPART('YEAR'|'MOTH'|'DAY' ,d) : 날짜데이터에서 년/월/일 출력한다
    TO_NUMBER(TO_CHAR(d, 'YYYY'))/YEAR(d)
    TO_NUMBER(TO_CHAR(d, 'MM))/MONTH(d)
    TO_NUMBER(TO_CHAR(d, 'DD'))/DYA(d)
    날짜형 데이터 연산
         날짜 + 날짜
         날짜 - 숫자
         날짜1 - 날짜2
         날짜 + 숫자/24(시간)

5. 변환형 함수

6. CASE 표현
    IF-THEN-ELSE논리와 유사한 방식으로 표현식을 작성하여 비교연산 기능을 보완

부서 정보에서 부서의 위치를 미국의 동부, 중부, 서부로 구분하라.
SELECT LOC
              , CASE LOC WHEN 'NEW YORK' THEN 'EAST'
                                   WHEN 'BOSTON' THEN 'EAST'
                                   WHEN 'CHICAGO' THEN 'CENTER'
                                   ELSE
'ETC' END as AREA
FROM DEPT;
사원 정보에서 급여가 3000 이상이면 상등급으로, 1000이상이면 중등급으로, 100미만이면 하등급으로 분류하라.
SELECT ENAME
               , CASE WHEN SAL >= 3000 THEN 'HIGH'
                            WHEN SAL >= 1000 THEN 'MID'
                            ELSE 'LOW' END AS SALARY_GRADE
FROM EMP;

7. NULL  관련 함수
    0) NULL에 대한 특징
        - 아직 정의되지 않은 값으로 0 또는 공백과 다르다.
        - 널 값을 포함하는 연산의 경우 결과 값도 널 값이다.
    1) NVL/ISNULL  함수

일반형 함수 함수 설명
NVL(표현식 1, 표현식2) / ISNULL(표현식1, 표현식2) 표현식 1의 결과값이 NULL이면 표현식2의 값을 출력한다
NULLIF(표현식1, 표현식2) 표현식1이 표현식2와 같으면 NULL, 아니면 표현식 1을 리턴한다.
COALESCE(표현식1, 표현식2, ---) 임의의 개수 표현식에서 NULL이 아닌 최초의 표현식을 나타낸다.
모든 표현식이 NULL이라면 NULL을 리턴한다.

 

'공부 > DB' 카테고리의 다른 글

[SQL 전문가 가이드] TOP(N) 쿼리, ROWNUM 조건  (0) 2022.09.05
[SQL 전문가 가이드] GROUP BY, HAVING절  (0) 2022.09.04
[PostgreSQL] 시작하기  (0) 2022.06.10
[SQL] SQL이란?  (0) 2022.06.10
[오라클] 서론  (0) 2022.01.05

관련글 더보기