데이타베이스/MySQL

Python과 MySQL: 데이터베이스 연동의 모든 것

shimdh 2025. 4. 29. 16:01
728x90

Python은 데이터베이스와의 상호작용을 지원하는 강력한 프로그래밍 언어로, 특히 MySQL과 함께 사용할 때 그 진가를 발휘합니다. MySQL은 널리 사용되는 관계형 데이터베이스 관리 시스템으로, Python과의 연동을 통해 데이터를 저장하고 처리하는 데 매우 유용한 도구가 됩니다. 이 글에서는 Python을 사용하여 MySQL 데이터베이스와 연결하고, 데이터를 조작하는 방법에 대해 자세히 설명하겠습니다.

1. Python에서 MySQL 연결하기

Python에서 MySQL 데이터베이스에 연결하기 위해서는 mysql-connector-python이라는 라이브러리를 사용하는 것이 일반적입니다. 이 라이브러리는 간단하게 설치할 수 있으며, SQL 쿼리를 실행할 수 있도록 해줍니다. 데이터베이스와의 연결은 데이터 조작의 첫 단계로, 이를 통해 다양한 데이터 작업을 수행할 수 있습니다.

설치 방법

pip install mysql-connector-python

연결 예제

import mysql.connector

# 데이터베이스에 연결
db = mysql.connector.connect(
    host="localhost",
    user="your_username",
    password="your_password",
    database="your_database"
)

cursor = db.cursor()

위 코드에서는 mysql.connector 모듈을 임포트하고, connect() 메소드를 사용하여 로컬 호스트의 특정 사용자 계정으로 지정된 데이터베이스에 연결합니다. 이 과정에서 데이터베이스의 호스트, 사용자 이름, 비밀번호, 데이터베이스 이름을 정확히 입력해야 합니다.

2. 데이터 삽입하기

MySQL 테이블에 데이터를 삽입하려면 INSERT 문을 사용합니다. 아래는 Python 코드로 이를 구현한 예시입니다. 데이터 삽입은 데이터베이스에 새로운 정보를 추가하는 중요한 작업입니다.

데이터 삽입 예제

sql = "INSERT INTO employees (name, age) VALUES (%s, %s)"
val = ("John Doe", 30)
cursor.execute(sql, val)

db.commit()  # 변경사항 저장
print(cursor.rowcount, "record inserted.")

이 코드는 'employees'라는 테이블에 새로운 직원 정보를 추가합니다. %s는 파라미터 플레이스홀더로 사용되며, 이는 SQL 인젝션 공격을 방지하기 위한 보안 조치입니다. 데이터 삽입 후에는 commit() 메소드를 호출하여 변경사항을 데이터베이스에 저장해야 합니다.

3. 데이터 조회하기

데이터를 조회하려면 SELECT 문을 사용할 수 있습니다. 다음은 특정 조건으로 데이터를 검색하는 방법입니다. 데이터 조회는 데이터베이스에서 필요한 정보를 얻는 데 필수적인 과정입니다.

데이터 조회 예제

cursor.execute("SELECT * FROM employees WHERE age > %s", (25,))
results = cursor.fetchall()

for result in results:
    print(result)

여기서 fetchall() 메소드는 쿼리 결과를 모두 가져오고, 반복문을 통해 각 행을 출력합니다. 이 방법을 통해 특정 조건을 만족하는 데이터만을 효율적으로 조회할 수 있습니다.

4. 데이터 업데이트 및 삭제하기

데이터를 수정하거나 삭제하려면 UPDATE 또는 DELETE 문을 사용할 수 있습니다. 데이터의 정확성과 최신성을 유지하기 위해 이러한 작업은 매우 중요합니다.

데이터 업데이트 예제

sql = "UPDATE employees SET age = %s WHERE name = %s"
val = (31, "John Doe")
cursor.execute(sql, val)

db.commit()
print(cursor.rowcount, "record(s) updated.")

데이터 삭제 예제

sql = "DELETE FROM employees WHERE name = %s"
val = ("John Doe",)
cursor.execute(sql, val)

db.commit()
print(cursor.rowcount, "record(s) deleted.")

위의 코드를 통해 각각 직원 정보의 나이를 수정하거나 이름이 'John Doe'인 직원을 삭제할 수 있습니다. 이러한 데이터 조작은 데이터베이스의 상태를 유지하고, 필요에 따라 정보를 갱신하는 데 필수적입니다.

5. 마무리 및 중요성

Python과 MySQL 연동은 다양한 웹 애플리케이션 및 소프트웨어 개발에서 필수적인 부분입니다. 이러한 기술들은 대량의 데이터를 효과적으로 관리하고 분석할 수 있게 해주며, 실제 비즈니스 환경에서도 널리 활용됩니다. 데이터베이스와의 연동을 통해 개발자는 복잡한 데이터 구조를 효율적으로 처리할 수 있으며, 다양한 기능들을 활용하면 복잡한 시스템에서도 효율적으로 작업할 수 있습니다. 향후 더 고급 기능(예: 트랜잭션 처리 등)을 배울 때에도 큰 도움이 될 것입니다. Python과 MySQL의 조합은 데이터 중심의 애플리케이션 개발에 있어 매우 강력한 도구가 될 것입니다.

728x90