[python] PyMySQL을 이용하여 데이터베이스에서 두 개의 테이블을 조인하여 데이터를 가져오는 방법을 알아본다.

데이터베이스에서 테이블을 조인하여 데이터를 가져오는 것은 많은 데이터 처리 작업에서 중요한 부분입니다. 이번 예제에서는 Python 데이터베이스 라이브러리인 PyMySQL을 사용하여 데이터베이스에서 두 개의 테이블을 조인하는 방법을 알아보겠습니다.

1. PyMySQL 설치

처음으로 PyMySQL 라이브러리를 설치해야 합니다. 다음 명령어를 사용하여 PyMySQL을 설치합니다.

pip install PyMySQL

2. 데이터베이스 연결

데이터베이스에 연결하기 위해 connect() 함수를 사용합니다. 다음은 예제 데이터베이스에 연결하는 예제입니다.

import pymysql

# 데이터베이스 연결
conn = pymysql.connect(
    host='localhost',
    user='username',
    password='password',
    db='database_name'
)

3. SQL 쿼리 작성

조인 작업을 위해 SQL 쿼리를 작성해야 합니다. 다음은 customers 테이블과 orders 테이블을 customer_id를 기준으로 조인하는 예제 쿼리입니다.

# SQL 쿼리 작성
query = '''
SELECT *
FROM customers
JOIN orders ON customers.customer_id = orders.customer_id
'''

# 커서 생성
cursor = conn.cursor()

# 쿼리 실행
cursor.execute(query)

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

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

4. 데이터 처리

조인된 데이터를 활용하여 원하는 작업을 수행할 수 있습니다. 예를 들어, 조인된 데이터를 리스트로 저장하거나 특정 조건에 맞는 데이터를 필터링할 수 있습니다.

# 결과 처리 예시: 리스트로 저장
data_list = []
for row in results:
    data_list.append(row)

# 결과 처리 예시: 특정 조건에 맞는 데이터 필터링
filtered_data = []
for row in results:
    if row[1] == 'John':
        filtered_data.append(row)

5. 연결 종료

작업이 끝나면 연결을 종료해야합니다.

# 연결 종료
conn.close()

위의 예제에서는 PyMySQL 라이브러리를 사용하여 데이터베이스에서 두 개의 테이블을 조인하여 데이터를 가져오는 방법을 안내했습니다. 여기서는 customers 테이블과 orders 테이블을 조인하는 예제를 사용하였지만, 실제 작업에서는 원하는 테이블과 조인 조건에 맞게 코드를 수정하여 사용하시면 됩니다.


참고 자료: