내장함수는 크게 제어 흐름 함수, 문자열 함수, 수학 함수, 날짜/시간 함수, 전체 텍스트 검색 함수,
형 변환 함수, XML 함수, 비트 함수, 보안/압축 함수, 정보 함수, 공간 분석 함수, 기타 함수 등으로 나뉜다
1. 제어 흐름 함수 : 프로그램의 흐름을 제어함
특정 조건에 따라 서로 다른 값 반환하거나 다른 동작 실행할 수 있게 해준다
-IF(조건, 참일때 반환할 값, 거짓일때 반환할 값)
예) SELECT IF (100>200, '참이다', '거짓이다');
SELECT IF(salary > 5000, 'High Salary', 'Low Salary') FROM employees;
> salary가 5000보다 크면 'High Salary'를, 그렇지 않으면 'Low Salary'를 반환
-IFNULL (값, NULL 일 때 반환할 값) : 수식1이 NULL이 아니면 수식1이 반환, 수식1이 NULL이면 수식2 반환
예) SELECT IFNULL (NULL,'널이군요'), IFNULL(100,'널이군요');
SELECT IFNULL(phone, 'No Phone') FROM customers;
> phone 값이 NULL인 경우 'No Phone'을 반환하고, 그렇지 않으면 원래의 phone 값을 반환합니다.
-NULLIF (값1, 값2) : 수식1과 수식2가 같으면 NULL반환, 다르면 수식1만 반환
예)SELECT NULLIF(100,100) , NULLIF(200,100);
SELECT NULLIF(salary, bonus) FROM employees;
> salary와 bonus가 같으면 NULL을 반환하고, 다르면 salary 값을 반환
-CASE ~ WHEN ~ ELSE ~ END : CASE는 내장함수는 아니며 연산자로 분류됨
여러 조건을 사용하여 조건에 맞는 값을 반환합니다. IF()와 달리 다중 조건을 처리할 때 유용
예)
CASE WHEN 조건1 THEN 값1 WHEN 조건2 THEN 값2 ... ELSE 기본값 END
예)
SELECT
CASE
WHEN salary > 8000 THEN 'Very High'
WHEN salary > 5000 THEN 'High'
ELSE 'Average'
END AS salary_level
FROM employees;
> 이 쿼리는 급여가 8000보다 크면 'Very High', 5000보다 크면 'High', 그렇지 않으면 'Average'를 반환
예)
SELECT CASE 10
WHEN 1 THEN '일'
WHEN 5 THEN '오'
WHEN 10 THEN '십'
ELSE '모름'
END AS 'CASE 연습'; --마지막 END AS는 출력될 행의 별칭 사용
- 요약
- IF(): 단순 조건 처리 (참일 때와 거짓일 때 다른 값 반환).
- IFNULL(): 값이 NULL일 경우 대체 값을 반환.
- CASE: 여러 조건을 처리할 때 사용.
- NULLIF(): 두 값이 같으면 NULL을 반환, 그렇지 않으면 첫 번째 값을 반환.
- COALESCE(): 첫 번째로 NULL이 아닌 값을 반환.
'MySQL' 카테고리의 다른 글
| MySQL_SQL 실행 단축키 (0) | 2024.09.10 |
|---|---|
| MySQL_문자열 함수 (0) | 2024.09.10 |
| MySQL_변수의 사용 (0) | 2024.09.10 |
| MySQL_MySQL의 데이터 형식(숫자,문자,날짜,기타) (0) | 2024.09.10 |
| MySQL_ON DUPLICATE KEY UPDATE (0) | 2024.09.10 |