본문 바로가기
[자격증] SQLD(SQL개발자)/↘ SQL 기본 및 활용

[ SQLD ] SQL 기본 - 6. FUNCTION (함수)

by 승큐리티 2020. 5. 27.


[ SQLD ] 

1. SQL 기본

 1-6. FUNCTION



 

1. 내장 함수(BUILT-IN FUNCTION)
SQL 안에서 사용하기 위해 정의 되어진 함수들 DBMS 마다 차이가 있지만 거의 비슷하다.


2. 내장함수 종류

문자열 함수 : 문자를 숫자나 문자로 변환

문자열 함수 설명
ASCII (문자) 문자나숫자를 ASCII 코드로 변환
CHAR (ASCII 코드 값) AISCII 코드값을 문자나 숫자로 변환
LOWER (문자열) 알파벳 소문자를 대문자로 변환
UPPER (문자열) 알파벳 대문자를 소문자로 변환
CONCAT (문자열1, 문자열2) 문자열1번과 2번을 결합한다
Oracle - 'll'
SQL Server - '+'
SUBSTR (m,n) 문자열 m 위치에서 n 길이를 자른다.
LENGTH (문자열) 문자열의 길이 출력
LTRIM (문자열,지정문자) 문자열 왼쪽부터 지정문자가 나타나면 문자를 삭제한다.
RTRIM (문자열,지정문자) 문자열 오른쪽부터 지정문자가 나타나면 문자를 삭제한다.
TRIM (문자열,지정문자) 문자열 양쪽으로 지정문자가 나타나면 문자를 삭제한다.


숫자형 함수
: 숫자 연산 처리 함수

숫자형 함수 설명
ABS (숫자) 절대값을 돌려준다.
ex) ABS(10.1) = 10
SIGN (숫자) 양수, 음수, 0 중 구별
1(양수) -1(음수) 0(0)
ex) SIGN(10.1) = 1
MOD (숫자1, 숫자2) 숫자1을 숫자2로 나눈 나머지 값을 리턴 (연산자 %)
ex) MOD(10,3) = 1
CEIL / CELLING (숫자) 숫자보다 크거나 같은 최소 정수 리턴
ex) CEIL(10.1) = 11
FLOOR (숫자) 숫자보다 작거나 같은 최대 정수 리턴
ex) FLOOR(10.1) = 10
ROUND (숫자, m) 숫자를 소수점 m 자리에서 반올림
m의 기본값은 0
ex) ROUND(10.123) = 10
TRUNC (숫자, m) 숫자를 소수점 m자리까지만 출력
m의 기본값은 0
ex) TRUNC(10.123, 2) = 10.12


날짜형 함수
: DATE 타입 연산

날짜형 함수 설명
SYSDATE 현재 날짜 출력
EXTRACT 날짜 데이터 중 년,월,일 출력


변환형 함수
: 데이터 형 변환 하는 함수
명시적 변환형 - 밑의 변환형 함수를 이용하여 개발자가 형변환 시키는 것
암시적 변환형 - DBMS가 자동으로 형변환 시키는 것

변환형 함수 설명
TO_NUMBER (문자열) 문자열을 숫자로 변환
TO_CHAR (숫자or날짜, [FORMAT]) 숫자 혹은 날짜를 FROMAT 형태의 문자열로 변환
TO_DATE(문자열, [FORMAT]) 문자열을 FORMAT 형태의 날짜형으로 변환

3. NULL 함수
NULL : 아직 정의 되지 않은 값으로 값이 없는 값

NULL 함수 설명
NVL (표현식 1, 표현식2) 표현식1이 null 값이라면 표현식2를 출력
VNL2 (표현식1, 표현식2, 표현식3) 표현식1이 NULL이 아니라면 표현식2 출력
표현식1이 NULL이면 표현식3을 출력
NULLIF (표현식 1, 표현식2) 포현식1=표현식2 라면 NULL 출력
같지 않으면 표현식1 출력
COALESCE (표현식1, ~ , 표현식n) 차례대로 NULL이 아니면 표현식1 출력
포현식1이 NULL이라면 표현식2가 NULL 여부 판단
모든 표현식이 NULL 이라면 NULL 출력

한마디로 NULL값이 아닌 첫번째 표현식을 출력하고싶을 때
NULL값이라면 뒤로 패스
패스 후 NULL값이 아니라면 그 표현식 출력
모두 NULL값이면 NULL 출력

4. CASE문 : WHEN의 조건에 참이면 THEN을 실행하고 거짓이면 ELSE를 실행한다.

CASE [~]
       WHEN [~] THEN [~]
       ELSE [~]
   END

CASE 실행예제

SELECT CASE
    WHEN NO = 1000 THEN '하'
    WHEN NO = 2000 THEN '중'
    ELSE '상'
    END
FROM PLAY;

-> NO 값이 1000 이면 하 2000이면 중 나머지는 상으로 출력하라.


5. DECODE문 : 특정조건이 참이면 A 거짓이면 B를 출력하는 문

SELECT DECODE(NO, 1000, '참', '거짓') FROM PLAY;

-> NO 값이 1000이면 참을 출력하고 1000이 아니면 거짓을 출력하라.


 

댓글