Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python에서 MySQL로 조건에 맞는 데이터만 선택하는 방법 – WHERE 절 활용 가이드

데이터베이스 작업에서 테이블의 모든 데이터를 조회해야 하는 경우는 생각보다 드뭅니다. 실무에서는 대부분 특정 조건이나 기준에 맞는 데이터만 선택하여 사용하게 됩니다.

예를 들어, 여러 학생의 이름과 점수가 담긴 테이블이 있다고 가정해 보겠습니다. 이때 90점 이상을 받은 학생의 정보만 추출하고 싶다면, '점수가 90 이상(marks >= 90)'이라는 조건을 기반으로 데이터를 선택해야 합니다.

바로 이런 경우를 위해 MySQL은 WHERE 문을 제공합니다. WHERE 절을 사용하면 지정한 조건에 부합하는 데이터만 테이블에서 손쉽게 조회할 수 있습니다.

기본 문법

SELECT * FROM table_name WHERE condition

여기서 table_name은 조회할 테이블의 이름을, condition은 데이터를 선택할 기준이 되는 조건을 의미합니다. 이 문장은 주어진 조건을 만족하는 행(row)만 테이블에서 가져옵니다.

Python에서 MySQL로 조건부 데이터를 조회하는 단계

  • MySQL 커넥터(mysql.connector)를 임포트합니다.
  • connect() 메소드를 사용해 데이터베이스와 연결을 설정합니다.
  • cursor() 메소드로 커서 객체를 생성합니다.
  • 적절한 MySQL 문법으로 쿼리를 작성합니다.
  • execute() 메소드로 SQL 쿼리를 실행합니다.
  • 작업이 끝나면 연결을 종료합니다.

예제 준비

아래와 같은 'Students' 테이블이 있다고 가정하겠습니다.

+----------+---------+-----------+------------+
|    Name  | Class   |    City   |    Marks   |
+----------+---------+-----------+------------+
|    Karan |    4    | Amritsar  |    95      |
|    Sahil |    6    | Amritsar  |    93      |
|    Kriti |    3    | Batala    |    88      |
|   Khushi |    9    | Delhi     |    90      |
|    Kirat |    5    | Delhi     |    85      |
+----------+---------+-----------+------------+

예제 코드

이제 점수가 90 이상인 학생의 레코드만 조회해서 화면에 출력해 보겠습니다.

import mysql.connector

db = mysql.connector.connect(
    host="your host",
    user="your username",
    password="your password",
    database="database_name"
)

cursor = db.cursor()

query = "SELECT * FROM Students WHERE Marks>=90"
cursor.execute(query)

for row in cursor:
    print(row)

위 코드를 실행하면 학생들의 점수가 90 이상인 행만 성공적으로 조회되어 출력됩니다. 이 경우 테이블에서 1번째(Karan), 2번째(Sahil), 4번째(Khushi) 행이 반환됩니다.

실행 결과

('Karan', 4, 'Amritsar', 95)
('Sahil', 6, 'Amritsar', 93)
('Khushi', 9, 'Delhi', 90)

정리

이처럼 Python과 MySQL을 연동하면 WHERE 절 하나만으로도 원하는 조건의 데이터를 간편하게 필터링할 수 있습니다. 점수 범위, 도시명, 학급 등 다양한 조건을 조합해 활용하면 더욱 강력한 데이터 조회가 가능합니다.