반응형
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로 업데이트된 레코드 수를 확인할 수 있습니다.
추가 팁:
- 예외 처리: 실제 개발에서는 데이터베이스 연결 중 발생할 수 있는 예외를 처리하는 것이 중요합니다. 예를 들어 try-except 구문을 사용하여 에러를 처리할 수 있습니다.
- Connection Pooling: 대규모 애플리케이션에서는 커넥션 풀을 사용하여 성능을 개선할 수 있습니다.
- 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 |