프로그래밍/[ Python ]

[Python] MySQL

gooooooood 2024. 11. 25. 13:59
반응형

Python에서 MySQL을 다루는 방법을 보여주는 3가지 예시 코드와 설명을 드리겠습니다. Python에서 MySQL을 다루기 위해 주로 사용되는 라이브러리는 mysql-connector-python, PyMySQL, MySQLdb 등이 있습니다. 여기서는 mysql-connector-python 라이브러리를 사용하여 예시를 보여드리겠습니다.

먼저, mysql-connector-python을 설치해야 합니다. 이를 위해 아래 명령어를 사용할 수 있습니다:

 

pip install mysql-connector-python

 

1. MySQL 데이터베이스 연결 및 데이터 조회

import mysql.connector

# MySQL 서버와 연결
conn = mysql.connector.connect(
    host="localhost",     # 호스트 (보통 localhost나 IP 주소)
    user="root",          # MySQL 사용자명
    password="password",  # MySQL 비밀번호
    database="test_db"    # 사용할 데이터베이스
)

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

# 쿼리 실행 (예: 모든 사용자 조회)
cursor.execute("SELECT * FROM users")

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

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

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

설명:

  • mysql.connector.connect()를 사용하여 MySQL 데이터베이스에 연결합니다.
  • cursor.execute()를 사용하여 SQL 쿼리를 실행합니다.
  • cursor.fetchall()을 사용하여 쿼리 결과를 가져옵니다.
  • cursor.close()와 conn.close()로 데이터베이스 연결을 종료합니다.

 

2. MySQL 데이터베이스에 데이터 삽입

import mysql.connector

# MySQL 서버와 연결
conn = mysql.connector.connect(
    host="localhost",
    user="root",
    password="password",
    database="test_db"
)

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

# 삽입할 데이터
name = "John Doe"
age = 28

# 데이터 삽입 쿼리
query = "INSERT INTO users (name, age) VALUES (%s, %s)"
values = (name, age)

# 쿼리 실행
cursor.execute(query, values)

# 변경사항 커밋
conn.commit()

print(f"{cursor.rowcount} record inserted.")

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

설명:

  • INSERT INTO 쿼리를 사용하여 데이터를 테이블에 삽입합니다.
  • cursor.execute()는 쿼리와 함께 파라미터를 전달받습니다.
  • conn.commit()을 호출하여 삽입된 데이터를 실제로 데이터베이스에 반영합니다.
  • cursor.rowcount로 삽입된 레코드 수를 확인할 수 있습니다.

 

3. MySQL 데이터베이스에서 데이터 업데이트

import mysql.connector

# MySQL 서버와 연결
conn = mysql.connector.connect(
    host="localhost",
    user="root",
    password="password",
    database="test_db"
)

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

# 업데이트할 데이터
new_age = 30
user_id = 1

# 데이터 업데이트 쿼리
query = "UPDATE users SET age = %s WHERE id = %s"
values = (new_age, user_id)

# 쿼리 실행
cursor.execute(query, values)

# 변경사항 커밋
conn.commit()

print(f"{cursor.rowcount} record(s) updated.")

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

설명:

  • UPDATE 쿼리를 사용하여 특정 조건에 맞는 데이터를 수정합니다.
  • cursor.execute()를 사용하여 쿼리와 함께 업데이트할 데이터를 전달합니다.
  • conn.commit()으로 변경사항을 데이터베이스에 반영합니다.
  • cursor.rowcount로 업데이트된 레코드 수를 확인할 수 있습니다.

 

추가 팁:

  1. 예외 처리: 실제 개발에서는 데이터베이스 연결 중 발생할 수 있는 예외를 처리하는 것이 중요합니다. 예를 들어 try-except 구문을 사용하여 에러를 처리할 수 있습니다.
  2. Connection Pooling: 대규모 애플리케이션에서는 커넥션 풀을 사용하여 성능을 개선할 수 있습니다.
  3. SQL Injection 방지: 위 코드에서처럼 SQL 쿼리의 파라미터를 %s와 같은 플레이스홀더로 처리하여 SQL Injection을 방지할 수 있습니다.

이 예시들은 MySQL을 Python에서 다룰 때 자주 사용하는 기본적인 작업들입니다.

반응형

'프로그래밍 > [ Python ]' 카테고리의 다른 글

[Python] statistics Module  (0) 2024.11.27
[Python] Requests Module  (0) 2024.11.26
[Python] Matplotlib  (0) 2024.11.22
[Python] Lambda  (0) 2024.11.21
[Python] Iterator  (2) 2024.11.20