[python] PyMySQL을 이용하여 데이터베이스의 레코드를 필터링하여 가져오는 방법을 알아본다.

PyMySQL은 Python에서 MySQL 서버와의 상호작용을 위한 파이썬 라이브러리입니다. 이번 포스트에서는 PyMySQL을 사용하여 데이터베이스의 레코드를 필터링하여 가져오는 방법에 대해 알아보겠습니다.

1. PyMySQL 설치

먼저 PyMySQL을 설치해야 합니다. 다음 명령어를 사용하여 PyMySQL을 설치할 수 있습니다.

pip install PyMySQL

2. 데이터베이스 연결

PyMySQL을 사용하여 데이터베이스에 연결하려면 다음과 같이 코드를 작성합니다.

import pymysql

# 데이터베이스 연결 정보 설정
host = 'localhost'
user = 'username'
password = 'password'
database = 'database_name'

# 데이터베이스 연결
connection = pymysql.connect(host, user, password, database)

위 코드에서 host, user, password, database 변수를 각자의 환경에 맞게 설정해야 합니다.

3. 레코드 필터링하여 가져오기

레코드를 필터링하여 가져오기 위해서는 SQL 쿼리를 사용해야 합니다. PyMySQL에서는 cursor 객체를 사용하여 SQL 쿼리를 실행하고 결과를 가져올 수 있습니다. 다음과 같이 코드를 작성하여 레코드를 필터링하여 가져올 수 있습니다.

# cursor 객체 생성
cursor = connection.cursor()

# SQL 쿼리 작성
query = "SELECT * FROM table_name WHERE condition"

# SQL 쿼리 실행
cursor.execute(query)

# 결과 가져오기
results = cursor.fetchall()

# 결과 출력
for row in results:
    print(row)

# 연결 종료
cursor.close()
connection.close()

위 코드에서 table_name은 필터링할 레코드가 저장된 테이블의 이름을 나타내며, condition은 필터링 조건을 나타냅니다. 예를 들어, SELECT * FROM employees WHERE age > 30age가 30보다 큰 레코드를 필터링하여 가져옵니다.

4. 예외 처리

데이터베이스 연결 및 SQL 쿼리 실행 과정에서 예외가 발생할 수 있습니다. 이를 처리하기 위해 try-except 문을 사용하여 예외를 처리할 수 있습니다. 예를 들어, 다음과 같이 코드를 작성하여 예외 처리를 할 수 있습니다.

try:
    # 데이터베이스 연결
    connection = pymysql.connect(host, user, password, database)
    
    # cursor 객체 생성
    cursor = connection.cursor()

    # SQL 쿼리 작성
    query = "SELECT * FROM table_name WHERE condition"

    # SQL 쿼리 실행
    cursor.execute(query)

    # 결과 가져오기
    results = cursor.fetchall()

    # 결과 출력
    for row in results:
        print(row)

except Exception as e:
    print(f"An error occurred: {e}")

finally:
    # 연결 및 cursor 종료
    cursor.close()
    connection.close()

위 코드에서 try 블록에서 데이터베이스 연결 및 SQL 쿼리 실행을 시도하고, 예외가 발생하면 except 블록에서 예외를 처리합니다. 모든 경우에서 finally 블록에서 연결 및 cursor를 종료합니다.

참고 자료