IF 문은 조건문의 하나로, 특정 조건을 검사한 후 그 결과에 따라 다른 값을 반환하는 기능을 합니다. 이 글에서는 Python을 사용해 SQL 데이터베이스와 상호작용하면서 IF 문을 활용하는 방법을 자세히 알아보겠습니다.
IF 문 기본 문법
IF(condition, value_if_true, value_if_false)
IF 문은 SELECT 절과 함께 사용할 수 있으며, 특정 기준에 따라 조건부로 데이터를 선택할 때 유용합니다. 조건이 참이면 두 번째 인자를, 거짓이면 세 번째 인자를 반환합니다.
Python에서 MySQL IF 문을 사용하는 단계
- MySQL 커넥터를 임포트합니다
- connect() 메서드를 사용하여 데이터베이스 연결을 설정합니다
- cursor() 메서드로 커서 객체를 생성합니다
- 적절한 MySQL 구문으로 쿼리를 작성합니다
- execute() 메서드로 SQL 쿼리를 실행합니다
- 작업이 끝나면 연결을 종료합니다
예제 테이블
다음과 같은 "MyTable" 테이블이 있다고 가정해 보겠습니다.
+----------+---------+ | id | value | +----------+---------+ | 1 | 200 | | 2 | 500 | | 3 | 1000 | | 4 | 600 | | 5 | 100 | | 6 | 150 | | 7 | 700 | +----------+---------+
코드 예제
위 테이블에 IF 문을 적용하여 값이 500보다 큰지 여부에 따라 PASS 또는 FAIL을 표시해 보겠습니다.
import mysql.connector
db = mysql.connector.connect(host="your host", user="your username", password="your password", database="database_name")
cursor = db.cursor()
query = "SELECT value, IF(value > 500, 'PASS', 'FAIL') FROM MyTable"
cursor.execute(query)
for row in cursor:
print(row)
db.close()실행 결과
(200, 'FAIL') (500, 'FAIL') (1000, 'PASS') (600, 'PASS') (100, 'FAIL') (150, 'FAIL') (700, 'PASS')
결과 분석
위 코드는 value가 500보다 작거나 같으면 FAIL을, 500보다 크면 PASS를 할당합니다. 주의할 점은 500인 경우도 FAIL로 처리되는데, 이는 IF(value > 500, ...) 조건이 엄격히 초과(>)를 의미하기 때문입니다. 만약 500도 PASS로 처리하고 싶다면 IF(value >= 500, 'PASS', 'FAIL')처럼 조건을 수정하면 됩니다.
이처럼 Python과 MySQL의 IF 문을 결합하면 별도의 후처리 로직 없이 쿼리 단계에서 조건부 값을 손쉽게 계산할 수 있어 코드가 간결해지고 처리 효율도 높아집니다.