Application/Database
[MySQL] 내장 함수, 제어흐름 함수
Kangjieun11
2021. 4. 17. 16:05
728x90
내장함수
SQL 의 함수는 DBMS가 제공하는 내장함수 (built-in function)과
사용자가 필요에 의해 직접 제작하는 사용자 정의 함수 (user-defined function)으로 나뉜다.
SQL에서의 함수는 수학의 함수와 같이 특정 값 or 열의 값을 입력 받아 그 값을 계산하고 결과값을 반환한다.
MySQL 제공 주요 함수
- 모든 내장함수는 최초 선언시 유효한 입력값을 받아야한다.
- SQL 내장 함수는 상수, 속성이름을 입력값으로 받아 단일 값을 결과로 반환한다.
![](https://blog.kakaocdn.net/dn/dHqf0H/btq2MkckS05/rEywZeoVbEXbx9CqSqMQA1/img.png)
제어흐름함수
- IF(수식, 참, 거짓)
수식이 참일경우 두번째 인수 반환, 거짓일 경우 세번째 인수 반환
SELECT IF(1>2, '참', '거짓'); |
![](https://blog.kakaocdn.net/dn/bW6vVL/btq2MO480Gr/vQxMGxkH2KddaS9W27bo1k/img.png)
- IFNULL(수식1, 수식2)
수식1이 NULL이 아니면 수식1 반환, NULL이면 수식2 반환
SELECT IFNULL(NULL, '널'), IFNULL(100, '널'); |
![](https://blog.kakaocdn.net/dn/305kr/btq2P3mqNC8/DrYAiVruMYCH9EgEEMu1Xk/img.png)
- NULLIF(수식1, 수식2)
수식1과 수식2가 같으면 NULL 반환, 다르면 수식1 반환
SELECT NULLIF(100, 100), IFNULL(200, 100); |
![](https://blog.kakaocdn.net/dn/dEkpK4/btq2MpkgEZs/RaffPI4Ck8Op8yk1KZNEBk/img.png)
- CASE ___ WHEN ___ ELSE ___ END
CASE는 내장함수가 아니고 연산자이다.
다중 분기에 사용
SELECT 조건값, WHEN 조건 THEN '반환 값' WHEN 조건 THEN '반환 값' ELSE 'WHEN 조건에 해당 안되는 경우 반환 값' END |
SELECT 10, CASE 10 WHEN 1 THEN '일' WHEN 5 THEN '오' WHEN 10 THEN '십' ELSE '몰라요' END; |
![](https://blog.kakaocdn.net/dn/bcmGvH/btq2MPiDYgV/pcAGf2YND35eUGDIi6WpgK/img.png)