파이썬(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)와 연동하는 방법을 살펴보았습니다. 각 데이터베이스에 맞는 라이브러리를 선택하고 활용하여 효율적으로 데이터를 관리할 수 있습니다. 데이터베이스 연동을 통해 애플리케이션의 데이터를 더욱 체계적으로 관리해보세요.
'프로그래밍 언어 > 파이썬' 카테고리의 다른 글
파이썬 MySQL 기본 설정과 데이터베이스 연동 (0) | 2024.08.16 |
---|---|
파이썬 SQLite, 데이터베이스 생성과 쿼리 실행 (0) | 2024.08.15 |
파이썬 컨텍스트 매니저, 자동 자원 관리의 핵심 (0) | 2024.08.13 |
파이썬(Python) 데코레이터, 함수 장식과 재사용성 증가 (0) | 2024.08.12 |
파이썬(Python) 제너레이터와 이터레이터 (0) | 2024.08.11 |