본문 바로가기
[파이썬]/데이터베이스

[MariaDB] If 함수

by sung min_Kim 2023. 11. 25.
If 함수


조건에 따른 처리


· If 함수를 사용하는 이유는?


 If 함수는 MariaDB 및 MySQL에서 제공하는 제어 흐름 함수 중 하나로, 조건에 따라 다른 값을 반환해 주는 역할을 수행한다.

 If 함수를 사용하는 이유는 SQL 쿼리 내에서 조건에 따라 다른 결과를 반환하거나, 데이터를 가공하는데 유용하기 때문이다. 이를 통해 더 복잡하고 다양한 질의를 생성할 수 있다.

 


· If 함수의 표현 방식


 If 함수는 조건을 제시하여 참인 경우 또는 거짓인 경우의 값을 반환한다. If 함수는 Select(조회) 문에서 직접 사용할 수 있다. 기본적인 표현 방식은 다음과 같다.

If(조건, '참인 경우 반환할 값', '거짓인 경우 반환할 값')

 

 만약 조건이 참(True)라면, '조건이 참인 경우 반환할 값'이 반환되고, 조건이 거짓(False)라면 '거짓인 경우 반환할 값'이 반환된다. 

 

If 함수

 If 함수는 조건(10 > 1)을 검사하여, 만약 참인 경우 '크다'를, 거짓인 경우 '작다'를 반환한다.

 또한, If 함수 내부에서 또 다른 If 함수를 사용하여 중첩된 조건을 처리하는 것이 가능하다. 이를 통해 더 복잡한 조건을 다룰 수 있다.

If 함수 중첩

 

If(조건, '참인 경우 반환할 값', If(조건, '참인 경우 반환할 값', '거짓인 경우 반환할 값'))

 

If 함수 중첩

첫 번째 If 함수는 조건(user_age >= 20)을 검사하고, 만약 참인 경우 'Adult'를 거짓인 경우 두 번째 'If 함수'가 실행되어 조건(user_age >= 13>을 검사하여, 참인 경우 'Teen'을, 거짓인 경우 'Child'를 반환한다. 이처럼 If 함수를 중첩하여 사용하면 여러 단계의 조건을 처리할 수 있다.

 


· If 함수와 Case 문의 차이점

 

 

  • 조건 처리 방식: If 문은 하나의 조건을 처리하며, 이 조건이 참이면 첫 번째 값을, 거짓이면 두 번째 값을 반환한다. 반면에 Case 문은 여러 조건을 순차적으로 처리하여, 각 조건에 따라 해당하는 값을 반환한다. 첫 번째로 참인 경우의 값을 반환하며, 어떤 조건도 만족하지 않을 경우 Else 절의 값을 반환한다.


  • 조건 개수 : If 함수는 기본적으로 하나의 조건을 처리한다. 여러 조건을 처리하려면 If 함수를 중첩해야 하지만 , 이는 코드의 복잡성을 높일 수 있다. 반면에 Case 문은 여러 조건을 처리할 수 있으며, 각 조건은 별도의 When 절에 명시된다.


  • 표현력 : If 함수는 간단하고 직관적인 조건 처리에 적합하다. 조건과 그 조건이 참인 경우와 거짓인 경우의 값을 명확히 보여줌으로 간단한 조건 처리에 적합하다. 반면 Case 문은 복잡하고 여러 단계의 조건을 처리하는데 유용하다. 여러 조건을 순차적으로 검사하여 매칭되는 첫 번째 조건의 결과를 반환할 수 있다.

 
이런 차이점들을 고려하여각 상황에 맞는 제어 흐름 함수를 선택하여 사용하면 된다.

 


· 예시

 

<예제_If 함수 활용> 회원이 보유한 마일리지의 값이 5000점 이상이면 '우수고객', 5000점 미만이면 '일반고객'으로 구분하여, 회원의 이름, 성별, 마일리지를 조회하기

- 조회 컬럼 : 회원 이름(mem_name), 성별(mem_regno2), 마일리지(mem_mileage)

예시_If 함수 활용

 Select 문에 '회원이 보유한 마일리지의 값이 5000점 이상'을 조건으로 하는 If 함수를 사용하여, 참인 경우 '우수고객'으로, 거짓인 경우 '일반고객'으로 나누어 값을 조회하고자 하였다.

 또한 성별을 나타내는 주민번호 뒷자리(mem_regno2)의 첫 번째 자리 수가 남성과 여성을 분류하는 지침으로 사용되므로, Substirng 함수를 이용하여 첫 번 째 값이 2와 4에 해당하는 짝수이면 '여성', 1과 3에 해당하는 홀수이면 '남성'으로 나누어 값을 조회하였다.

 이처럼 If 문은 간단한 조회를 사용하는데 유용하다.

 

'[파이썬] > 데이터베이스' 카테고리의 다른 글

[MariaDB] 가상 테이블(Inline View)  (1) 2023.11.26
[MariaDB] Join (Inner Join, Outer Join)  (1) 2023.11.26
[MariaDB] Case 문  (1) 2023.11.25
[MariaDB] 정렬 (Order By)  (0) 2023.11.25
[MariaDB] 별칭(식별자)  (1) 2023.11.25