MySQL은 전 세계적으로 가장 널리 사용되는 오픈 소스 데이터베이스 중 하나입니다. 파이썬은 PyMySQL 라이브러리를 통해 MySQL에 손쉽게 연결하고, 데이터를 저장하고 조회할 수 있는 다양한 방법을 제공합니다.
PyMySQL 설치하기
사용 중인 파이썬 환경에 따라 아래 방법 중 하나를 선택해 PyMySQL 패키지를 설치할 수 있습니다.
# 파이썬 콘솔(터미널)에서 설치 pip install pymysql # Anaconda 환경에서 설치 conda install -c anaconda pymysql # PyCharm 등 파이썬 IDE의 모듈 관리 기능으로 추가 pymysql
MySQL에 연결하기
다음 코드를 사용하면 MySQL 데이터베이스에 연결할 수 있습니다. 연결에 성공한 후에는 데이터베이스 버전을 확인해 보겠습니다.
예제
import pymysql
# 데이터베이스 연결 열기
db = pymysql.connect(
host="localhost",
user="testuser",
password="test123",
database="TESTDB"
)
# cursor() 메서드로 커서 객체 준비
cursor = db.cursor()
# execute() 메서드로 SQL 쿼리 실행
cursor.execute("SELECT VERSION()")
# fetchone() 메서드로 단일 행 가져오기
data = cursor.fetchone()
print("Database version : %s " % data)
# 서버와 연결 종료
db.close()실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
Database version : 8.0.19
데이터베이스 명령 실행하기
데이터베이스 명령을 실행하려면 먼저 DB 커서를 생성하고, 커서에 전달할 SQL 쿼리를 작성합니다. 그런 다음 cursor.execute() 메서드를 호출하여 쿼리를 실행하고 그 결과를 가져옵니다.
예제
import pymysql
# 데이터베이스 연결 열기
db = pymysql.connect(
host="localhost",
user="username",
password="paswd",
database="DBname"
)
# cursor() 메서드로 커서 객체 준비
cursor = db.cursor()
# 수입이 1000을 초과하는 직원을 조회하는 SQL 쿼리 작성
sql = "SELECT * FROM EMPLOYEE WHERE INCOME > %d" % (1000)
try:
# SQL 명령 실행
cursor.execute(sql)
# 모든 행을 리스트 형태로 가져오기
results = cursor.fetchall()
for row in results:
fname = row[0]
lname = row[1]
age = row[2]
sex = row[3]
income = row[4]
# 조회된 결과 출력
print("fname=%s, lname=%s, age=%d, sex=%s, income=%d" %
(fname, lname, age, sex, income))
except Exception as e:
print("Error: unable to fetch data", e)
# 서버와 연결 종료
db.close()실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
fname = Jack, lname = Ma, age = 31, sex = M, income = 12000
이처럼 PyMySQL을 활용하면 파이썬에서 MySQL 데이터베이스에 연결하고 SQL 쿼리를 실행해 데이터를 자유롭게 다룰 수 있습니다. 실무에서는 보안을 위해 데이터베이스 접속 정보를 코드에 직접 하드코딩하지 않고, 환경 변수나 별도의 설정 파일로 분리해 관리하는 것이 좋습니다.