데이터베이스 연결이 성공적으로 설정되면, 생성된 커서(cursor) 객체의 execute() 메서드를 사용하여 데이터베이스에 테이블을 만들거나 레코드를 삽입할 수 있습니다.
예제
이번 예제에서는 EMPLOYEE라는 이름의 데이터베이스 테이블을 생성해 보겠습니다.
#!/usr/bin/python
import MySQLdb
# 데이터베이스 연결 열기
db = MySQLdb.connect("localhost","testuser","test123","TESTDB" )
# cursor() 메서드를 사용하여 커서 객체 준비
cursor = db.cursor()
# execute() 메서드를 사용하여 기존 테이블이 있다면 삭제
cursor.execute("DROP TABLE IF EXISTS EMPLOYEE")
# 요구 사항에 맞게 테이블 생성
sql = """CREATE TABLE EMPLOYEE (
FIRST_NAME CHAR(20) NOT NULL,
LAST_NAME CHAR(20),
AGE INT,
SEX CHAR(1),
INCOME FLOAT )"""
cursor.execute(sql)
# 서버와의 연결 종료
db.close()코드 설명
위 예제의 동작 과정을 단계별로 살펴보면 다음과 같습니다.
1. 데이터베이스 연결
MySQLdb.connect() 메서드를 통해 호스트 주소(localhost), 사용자명(testuser), 비밀번호(test123), 데이터베이스명(TESTDB)을 인자로 전달하여 연결을 설정합니다.
2. 커서 객체 생성
cursor() 메서드로 커서 객체를 준비합니다. 커서는 SQL 쿼리를 실행하고 결과를 처리하는 역할을 담당합니다.
3. 기존 테이블 삭제
DROP TABLE IF EXISTS 구문을 실행하여 같은 이름의 테이블이 이미 존재하는 경우 오류 없이 삭제합니다. 이는 스크립트를 반복 실행할 때 발생할 수 있는 충돌을 방지합니다.
4. 테이블 생성
EMPLOYEE 테이블은 FIRST_NAME(필수), LAST_NAME, AGE, SEX, INCOME 다섯 개의 컬럼으로 구성됩니다. 각 컬럼의 데이터 타입과 제약 조건을 정의한 후 execute(sql)로 실행합니다.
5. 연결 종료
모든 작업이 완료되면 db.close()를 호출하여 서버와의 연결을 안전하게 종료합니다. 리소스 누수를 방지하기 위해 반드시 연결을 닫아주는 것이 좋습니다.
참고: MySQLdb는 Python 2.x 환경에서 주로 사용되는 라이브러리입니다. Python 3.x에서는 mysqlclient(MySQLdb의 포크 버전) 또는 PyMySQL, mysql-connector-python과 같은 라이브러리를 사용하는 것이 권장됩니다.