[python] PyMySQL을 이용하여 데이터베이스의 테이블의 레코드를 자동으로 생성하는 방법을 알아본다.

PyMySQL은 Python에서 MySQL 데이터베이스와 상호작용하기 위한 역할을 수행하는 라이브러리입니다. 이번 블로그 포스트에서는 PyMySQL을 이용하여 데이터베이스의 테이블에 레코드를 자동으로 생성하는 방법에 대해 알아보겠습니다.

1. 데이터베이스 연결

먼저 PyMySQL을 설치하고, 데이터베이스에 연결해야 합니다. 다음과 같이 필요한 패키지를 설치합니다.

pip install pymysql

그리고 아래 코드를 사용하여 데이터베이스에 연결합니다.

import pymysql

connection = pymysql.connect(
    host='localhost',
    user='your_username',
    password='your_password',
    database='your_database'
)

2. 테이블에 레코드 생성

이제 연결된 데이터베이스에서 테이블에 레코드를 생성하는 방법을 알아보겠습니다. 예를 들어, users라는 테이블에 nameemail 컬럼이 있다고 가정해봅시다.

import pymysql

connection = pymysql.connect(
    host='localhost',
    user='your_username',
    password='your_password',
    database='your_database'
)

cursor = connection.cursor()

# 레코드 생성에 필요한 데이터
users = [
    ('John Doe', 'john@example.com'),
    ('Jane Smith', 'jane@example.com'),
    ('Mike Johnson', 'mike@example.com')
]

# 레코드 생성 쿼리 실행
for user in users:
    query = "INSERT INTO users (name, email) VALUES (%s, %s)"
    cursor.execute(query, user)

# 변경된 내용을 커밋
connection.commit()

# 연결 종료
connection.close()

위의 코드에서는 users라는 리스트를 생성하여 nameemail 값을 포함한 튜플로 구성했습니다. 그리고 INSERT INTO 쿼리를 사용하여 각 튜플의 값을 users 테이블에 삽입합니다. 마지막으로 connection.commit()을 호출하여 변경 내용을 커밋하고, connection.close()를 사용하여 연결을 종료합니다.

3. 확인하기

레코드를 생성한 후에는 데이터베이스에서 레코드를 확인할 수 있습니다. 다음 코드를 실행하여 데이터베이스에서 레코드를 조회해보세요.

import pymysql

connection = pymysql.connect(
    host='localhost',
    user='your_username',
    password='your_password',
    database='your_database'
)

cursor = connection.cursor()

# 레코드 조회 쿼리 실행
query = "SELECT * FROM users"
cursor.execute(query)

# 결과 출력
result = cursor.fetchall()
for row in result:
    print(f"Name: {row[0]}, Email: {row[1]}")

# 연결 종료
connection.close()

위의 코드에서는 SELECT * FROM users 쿼리를 사용하여 users 테이블의 모든 레코드를 조회하고, 결과를 출력합니다.

결론

PyMySQL을 이용하여 데이터베이스의 테이블에 레코드를 자동으로 생성하는 방법을 살펴보았습니다. 데이터베이스에 연결한 후 INSERT INTO 쿼리를 사용하여 레코드를 생성하고, SELECT 쿼리를 사용하여 생성된 레코드를 확인할 수 있습니다. 이를 응용하여 다양한 데이터베이스 작업을 자동화할 수 있습니다. 참고로, PyMySQL 외에도 다양한 Python 라이브러리가 있으니 상황에 맞게 선택하여 사용하시면 됩니다.

참고 링크: