본문 바로가기

프로그래밍 언어/파이썬

파이썬(Python) 데이터베이스(DB) 연동 방법

파이썬(Python) 데이터베이스(DB) 연동 방법

데이터베이스(DataBase)는 현대 애플리케이션에서 핵심적인 역할을 합니다. 파이썬은 다양한 데이터베이스와의 연동을 지원하며, 이를 통해 효율적인 데이터 관리를 구현할 수 있습니다. 이 글에서는 파이썬(Python)을 사용하여 데이터베이스(DB)와 연동하는 방법을 소개하고, 주요 데이터베이스 라이브러리와 그 사용법을 다루겠습니다.

 

 

 

파이썬 데이터베이스 연동의 필요성

데이터베이스는 대량의 데이터를 체계적으로 저장하고 관리하는 시스템입니다. 파이썬과 데이터베이스를 연동하면 데이터 저장, 검색, 수정, 삭제 등의 작업을 효율적으로 수행할 수 있습니다. 이는 데이터 중심의 애플리케이션 개발에서 필수적입니다.

 

 

파이썬에서 사용 가능한 데이터베이스 라이브러리

파이썬은 다양한 데이터베이스와의 연동을 지원하는 여러 라이브러리를 제공합니다. 대표적인 라이브러리로는 sqlite3, MySQL Connector, psycopg2, SQLAlchemy 등이 있습니다.

 

 

SQLite 연동하기

SQLite는 가벼운 내장형 데이터베이스로, 별도의 서버 없이 파일 기반으로 작동합니다. 파이썬 표준 라이브러리인 sqlite3를 사용하여 쉽게 연동할 수 있습니다:


import sqlite3

# 데이터베이스 연결
conn = sqlite3.connect('example.db')

# 커서 생성
cur = conn.cursor()

# 테이블 생성
cur.execute('''CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY, name TEXT, age INTEGER)''')

# 데이터 삽입
cur.execute("INSERT INTO users (name, age) VALUES ('Alice', 30)")

# 데이터 조회
cur.execute("SELECT * FROM users")
rows = cur.fetchall()
for row in rows:
    print(row)

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

 

 

MySQL 연동하기

MySQL은 오픈 소스 관계형 데이터베이스 관리 시스템입니다. 파이썬에서는 mysql-connector-python 라이브러리를 사용하여 MySQL과 연동할 수 있습니다:


import mysql.connector

# 데이터베이스 연결
conn = mysql.connector.connect(
    host='localhost',
    user='yourusername',
    password='yourpassword',
    database='yourdatabase'
)

# 커서 생성
cur = conn.cursor()

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

# 데이터 삽입
cur.execute("INSERT INTO users (name, age) VALUES ('Alice', 30)")

# 데이터 조회
cur.execute("SELECT * FROM users")
rows = cur.fetchall()
for row in rows:
    print(row)

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

 

 

 

 

PostgreSQL 연동하기

PostgreSQL은 강력한 오픈 소스 객체 관계형 데이터베이스 시스템입니다. 파이썬에서는 psycopg2 라이브러리를 사용하여 PostgreSQL과 연동할 수 있습니다:


import psycopg2

# 데이터베이스 연결
conn = psycopg2.connect(
    dbname='yourdatabase',
    user='yourusername',
    password='yourpassword',
    host='localhost'
)

# 커서 생성
cur = conn.cursor()

# 테이블 생성
cur.execute('''CREATE TABLE IF NOT EXISTS users (id SERIAL PRIMARY KEY, name VARCHAR(100), age INT)''')

# 데이터 삽입
cur.execute("INSERT INTO users (name, age) VALUES ('Alice', 30)")

# 데이터 조회
cur.execute("SELECT * FROM users")
rows = cur.fetchall()
for row in rows:
    print(row)

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

 

 

ORM(Object Relational Mapping) 사용하기

ORM은 객체 지향 프로그래밍 언어를 사용하여 데이터베이스와 상호작용할 수 있도록 하는 기술입니다. 파이썬에서는 SQLAlchemy가 대표적인 ORM 라이브러리입니다:


from sqlalchemy import create_engine, Column, Integer, String
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker

# 데이터베이스 연결
engine = create_engine('sqlite:///example.db')
Base = declarative_base()

# 모델 정의
class User(Base):
    __tablename__ = 'users'
    id = Column(Integer, primary_key=True)
    name = Column(String)
    age = Column(Integer)

# 테이블 생성
Base.metadata.create_all(engine)

# 세션 생성
Session = sessionmaker(bind=engine)
session = Session()

# 데이터 삽입
new_user = User(name='Alice', age=30)
session.add(new_user)
session.commit()

# 데이터 조회
users = session.query(User).all()
for user in users:
    print(user.name, user.age)

# 연결 종료
session.close()
            

 

 

결론

이 글에서는 파이썬(Python)을 사용하여 다양한 데이터베이스(DB)와 연동하는 방법을 살펴보았습니다. 각 데이터베이스에 맞는 라이브러리를 선택하고 활용하여 효율적으로 데이터를 관리할 수 있습니다. 데이터베이스 연동을 통해 애플리케이션의 데이터를 더욱 체계적으로 관리해보세요.