Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python으로 MySQL 데이터베이스 연결하기: 기본 개념과 실전 예제

Python에서 MySQL 데이터베이스를 다루려면 먼저 데이터베이스에 연결하는 방법을 이해해야 합니다. 이 글에서는 MySQLdb 모듈을 사용해 MySQL 데이터베이스에 접속하는 과정을 단계별로 살펴보겠습니다.

연결 전 준비 사항

MySQL 데이터베이스에 연결하기 전에 아래 항목들이 모두 준비되어 있는지 확인하세요.

  • TESTDB라는 이름의 데이터베이스가 생성되어 있어야 합니다.
  • TESTDB 안에 EMPLOYEE 테이블이 만들어져 있어야 합니다.
  • EMPLOYEE 테이블에는 FIRST_NAME, LAST_NAME, AGE, SEX, INCOME 필드가 포함되어 있어야 합니다.
  • TESTDB에 접근할 수 있는 사용자 ID "testuser"와 비밀번호 "test123"이 설정되어 있어야 합니다.
  • Python 모듈인 MySQLdb가 시스템에 올바르게 설치되어 있어야 합니다.
  • MySQL의 기본 개념을 이해하고 있으면 좋습니다. 필요하다면 MySQL 튜토리얼을 먼저 학습하는 것을 권장합니다.

데이터베이스 연결 예제

다음은 MySQL 데이터베이스 "TESTDB"에 연결하는 기본 예제 코드입니다.

#!/usr/bin/python
import MySQLdb
# 데이터베이스 연결 열기
db = MySQLdb.connect("localhost","testuser","test123","TESTDB")
# cursor() 메서드로 커서 객체 준비
cursor = db.cursor()
# execute() 메서드로 SQL 쿼리 실행
cursor.execute("SELECT VERSION()")
# fetchone() 메서드로 단일 행 가져오기
data = cursor.fetchone()
print "Database version : %s " % data
# 서버와의 연결 종료
db.close()

이 스크립트를 실행하면 Linux 환경에서 다음과 같은 결과가 출력됩니다.

Database version : 5.0.45

코드 동작 원리

데이터 소스와의 연결이 성공적으로 수립되면 Connection 객체가 반환되어 변수 db에 저장되며, 이후 작업에서 계속 사용됩니다. 반대로 연결에 실패하면 db는 None으로 설정됩니다.

그다음 db 객체를 통해 cursor 객체를 생성하고, 이 커서를 이용해 SQL 쿼리를 실행합니다. 쿼리 실행 결과는 fetchone() 같은 메서드로 가져올 수 있습니다. 마지막으로 프로그램을 종료하기 전에는 반드시 db.close()를 호출하여 데이터베이스 연결을 닫고 시스템 리소스를 해제해야 합니다. 이는 불필요한 연결 누수를 방지하는 중요한 습관입니다.

참고: 최신 Python 환경에서의 대안

위 예제의 MySQLdb는 Python 2 기반의 레거시 모듈입니다. Python 3 환경에서는 이를 포크한 mysqlclient나 순수 Python으로 구현된 PyMySQL을 사용하는 것이 일반적입니다. 또한 실무에서는 DB-API를 직접 다루기보다 SQLAlchemy 같은 ORM을 활용하면 더 안전하고 생산적으로 데이터베이스를 관리할 수 있습니다.