MySQL 제어문 정리
- 기본적으로 제어문은 무언가 조회하는데 보다는, 새로운 필드를 생성해서 뷰로 만드는데 목적을 둡니다.
- 새로운 필드를 생성하고 각 필드 값을 제어문으로 조건을 줘서 값을 결정하는 방식입니다.
CASE문
- case는 switch 같이 쓸 수 있고, if문 같이 쓸 수 있습니다.
1. SWITCH
- value와 compare_value 값이 같으면, then 절을 반환합니다.
- 만약 서로 값이 같지 않으면, else 절을 반환합니다. 이때 else 절이 없으면 null을 반환합니다.
- 작성 방법
CASE value WHEN compare_value THEN '반환 값' WHEN compare_value THEN '반환 값' ELSE 'WHEN 조건에 해당 안되는 경우 반환 값' END
2. IF
- when 뒤의 condition의 논리값이 참이면, then 절의 result 값을 반환합니다.
- 만약 논리값이 거짓이라면, else 절의 result 값을 반환합니다. 이때 else 절이 없으면, null을 반환합니다.
- 작성 방법
CASE WHEN [condition] THEN result WHEN [condition] THEN result ELSE result END
IF문
1. IF()
- if() 함수는 첫 번째 인수로 전달받은 표현식의 논리값에 따라 다른 값을 반환합니다.
- 작성 방법
SELECT IF(조건, '참일 때', '거짓일 때');
2. IFNULL()
- ifnull() 함수는 첫 번째 인수로 전달받은 값이 null인지 아닌지를 검사하여, 해당 필드의 값이 null을 반환할 때, 지정한 값으로 대체하여 출력해줍니다.
- 작성 방법
SELECT IFNULL(column_name, '대체할 값') FROM [table_name]; SELECT IFNULL(column_name, IFNULL(column_name, '대체할 값')) FROM [table_name];
3. IF EXISTS
- 만약 존재하면 쿼리 처리
- 작성 방법
DROP DATABASE IF EXISTS Hotel; -- 에러 방지를 위해 if문 추가 DROP TABLE IF EXISTS Reservation; Create Table IF NOT EXISTS new_table like old_table -- (new_table 이 없으면 복사)
'Database > MySQL' 카테고리의 다른 글
[Database / MySQL] - MySQL 내장 함수 & 연산자 정리 (1) | 2024.06.13 |
---|---|
[Database / MySQL] - 기본 문법과 데이터 무결성 (Data Integrity) (0) | 2024.06.12 |
[Database / MySQL] - MySQL 비밀번호 변경 (0) | 2024.05.20 |
[MySQL] - MySQL 날짜 계산 관련 함수 정리 (0) | 2024.02.01 |
[MySQL] - DateType / window function (1) | 2024.01.06 |