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

Python MySQL 데이터베이스 DELETE 작업 완벽 가이드

Python에서 DELETE 작업이란?

데이터베이스에서 더 이상 필요하지 않은 레코드를 제거해야 할 때 DELETE 작업을 사용합니다. Python에서는 SQL의 DELETE 문을 커서(cursor) 객체로 실행하여 조건에 맞는 레코드를 간편하게 삭제할 수 있습니다.

다음은 EMPLOYEE 테이블에서 나이(AGE)가 20보다 많은 모든 레코드를 삭제하는 전체 절차입니다.

예제 코드

#!/usr/bin/python
import MySQLdb

# 데이터베이스 연결 열기
db = MySQLdb.connect("localhost", "testuser", "test123", "TESTDB")

# cursor() 메서드로 커서 객체 준비
cursor = db.cursor()

# 삭제할 레코드를 지정하는 SQL 쿼리 준비
sql = "DELETE FROM EMPLOYEE WHERE AGE > '%d'" % (20)

try:
    # SQL 명령 실행
    cursor.execute(sql)
    # 변경 사항을 데이터베이스에 커밋
    db.commit()
except:
    # 오류 발생 시 롤백
    db.rollback()

# 서버 연결 종료
db.close()

코드 주요 단계 설명

1. 데이터베이스 연결: MySQLdb.connect() 메서드를 사용해 호스트, 사용자 이름, 비밀번호, 데이터베이스 이름을 지정하여 연결을 생성합니다.

2. 커서 생성: cursor() 메서드로 커서 객체를 만들어 SQL 문을 실행할 수 있는 환경을 준비합니다.

3. DELETE 쿼리 실행: WHERE 절을 사용해 AGE가 20보다 큰 레코드만 선택적으로 삭제합니다. WHERE 절을 생략하면 테이블의 모든 레코드가 삭제되므로 각별히 주의해야 합니다.

4. 커밋과 롤백 처리: 쿼리가 성공적으로 실행되면 commit()으로 변경 사항을 확정하고, 오류가 발생하면 rollback()을 호출하여 데이터베이스를 이전 상태로 되돌립니다.

5. 연결 종료: 작업이 끝나면 반드시 close() 메서드로 데이터베이스 연결을 닫아 리소스 누수를 방지합니다.

참고 사항

실무 환경에서는 문자열 포맷팅 대신 매개변수화된 쿼리(parameterized query)를 사용하는 것이 좋습니다. 이는 SQL 인젝션 공격을 방지하고 코드의 안정성을 높이는 표준적인 방법입니다.