Python/Python 심화

Python MySQL과 PostgreSQL 연동 방법

임베디드 친구 2025. 8. 11. 20:08
728x90
반응형

Python MySQL과 PostgreSQL 연동 방법

데이터베이스는 현대 애플리케이션의 핵심 요소 중 하나입니다. Python은 다양한 데이터베이스와 쉽게 연동할 수 있는 강력한 라이브러리를 제공합니다. 오늘은 Python을 사용해 MySQL과 PostgreSQL에 연결하고 데이터를 조작하는 방법을 다룹니다. 이 글은 데이터베이스 기초 지식이 있다고 가정하며, Python과 MySQL, PostgreSQL을 설치했다고 가정합니다.

1. MySQL 연동하기

1.1 MySQL 연동을 위한 준비

MySQL을 사용하려면 mysql-connector-python 라이브러리를 설치해야 합니다. 다음 명령어를 실행해 설치합니다:

pip install mysql-connector-python

1.2 MySQL 연결 코드

다음은 Python을 사용해 MySQL 데이터베이스에 연결하는 예제입니다:

import mysql.connector

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

cursor = conn.cursor()

# 테이블 생성 예제
cursor.execute("""
CREATE TABLE IF NOT EXISTS users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(255),
    age INT
)
""")

# 데이터 삽입 예제
cursor.execute("INSERT INTO users (name, age) VALUES (%s, %s)", ("Alice", 30))
conn.commit()

# 데이터 조회 예제
cursor.execute("SELECT * FROM users")
for row in cursor.fetchall():
    print(row)

# 연결 종료
cursor.close()
conn.close()

1.3 주요 코드 설명

  • mysql.connector.connect: MySQL 서버와 연결을 설정합니다.
  • cursor.execute: SQL 명령을 실행합니다.
  • conn.commit: 데이터베이스 변경 사항을 커밋합니다.
  • cursor.fetchall: SELECT 쿼리 결과를 가져옵니다.

1.4 에러 처리

MySQL 작업 중 발생할 수 있는 에러를 처리하려면 try-except 구문을 활용합니다:

try:
    conn = mysql.connector.connect(
        host="localhost",
        user="root",
        password="your_password",
        database="your_database"
    )
    cursor = conn.cursor()
    cursor.execute("SELECT * FROM users")
    print(cursor.fetchall())
except mysql.connector.Error as err:
    print(f"Error: {err}")
finally:
    if conn.is_connected():
        cursor.close()
        conn.close()

2. PostgreSQL 연동하기

2.1 PostgreSQL 연동을 위한 준비

PostgreSQL을 사용하려면 psycopg2 라이브러리를 설치해야 합니다. 다음 명령어를 실행해 설치합니다:

pip install psycopg2

2.2 PostgreSQL 연결 코드

다음은 Python을 사용해 PostgreSQL 데이터베이스에 연결하는 예제입니다:

import psycopg2

# 데이터베이스 연결
conn = psycopg2.connect(
    host="localhost",
    database="your_database",
    user="your_user",
    password="your_password"
)

cursor = conn.cursor()

# 테이블 생성 예제
cursor.execute("""
CREATE TABLE IF NOT EXISTS products (
    id SERIAL PRIMARY KEY,
    name VARCHAR(255),
    price NUMERIC
)
""")

# 데이터 삽입 예제
cursor.execute("INSERT INTO products (name, price) VALUES (%s, %s)", ("Laptop", 1200.50))
conn.commit()

# 데이터 조회 예제
cursor.execute("SELECT * FROM products")
for row in cursor.fetchall():
    print(row)

# 연결 종료
cursor.close()
conn.close()

2.3 주요 코드 설명

  • psycopg2.connect: PostgreSQL 서버와 연결을 설정합니다.
  • cursor.execute: SQL 명령을 실행합니다.
  • conn.commit: 데이터베이스 변경 사항을 커밋합니다.
  • cursor.fetchall: SELECT 쿼리 결과를 가져옵니다.

2.4 에러 처리

PostgreSQL 작업 중 발생할 수 있는 에러를 처리하려면 다음과 같이 try-except 구문을 사용할 수 있습니다:

try:
    conn = psycopg2.connect(
        host="localhost",
        database="your_database",
        user="your_user",
        password="your_password"
    )
    cursor = conn.cursor()
    cursor.execute("SELECT * FROM products")
    print(cursor.fetchall())
except psycopg2.Error as err:
    print(f"Error: {err}")
finally:
    if conn:
        cursor.close()
        conn.close()

3. MySQL과 PostgreSQL 간 차이점

특징 MySQL PostgreSQL
데이터 유형 지원 제한적 풍부한 데이터 유형 지원
JSON 지원 기본 제공 고급 JSON 함수 제공
확장성 상대적으로 제한적 매우 확장 가능
트랜잭션 처리 기본 제공 고급 트랜잭션 처리 가능

4. 마무리

이번 포스팅에서는 Python을 사용해 MySQL과 PostgreSQL에 연결하고 데이터를 조작하는 방법을 알아보았습니다. 두 데이터베이스는 각각의 장단점이 있으므로 프로젝트의 요구사항에 따라 적합한 데이터베이스를 선택하는 것이 중요합니다. 예제를 따라하며 직접 코드를 실행해보세요. 데이터베이스와 Python 연동의 강력함을 실감할 수 있을 것입니다.

728x90
반응형