[python] 데이터베이스 구축을 위한 파이썬 라이브러리 소개

데이터베이스는 현대적인 소프트웨어 개발에서 필수적인 요소입니다. 파이썬은 데이터베이스와의 상호작용을 위한 다양한 라이브러리와 모듈을 제공하며, 이를 통해 데이터베이스 구축과 관리 작업을 간편하게 처리할 수 있습니다. 이번 포스트에서는 파이썬에서 흔히 사용되는 몇 가지 데이터베이스 라이브러리를 소개하겠습니다.

1. sqlite3

SQLite는 경량의 오픈 소스 데이터베이스 엔진으로, 파이썬에 기본적으로 내장되어 있는 sqlite3 모듈을 통해 사용할 수 있습니다. 이 모듈은 단일 파일로 데이터베이스를 관리하며, SQL 쿼리를 사용하여 데이터를 조작할 수 있는 간단하고 강력한 기능을 제공합니다. SQLite는 작은 규모의 프로젝트나 임베디드 시스템에서 많이 사용됩니다.

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 (?, ?)', ('John', 25))

# 데이터 조회
cur.execute('SELECT * FROM users')
rows = cur.fetchall()
print(rows)

# 커밋 및 연결 종료
conn.commit()
conn.close()

2. psycopg2

psycopg2는 PostgreSQL 데이터베이스와의 상호작용을 위한 파이썬 라이브러리입니다. PostgreSQL은 대규모 데이터베이스 시스템에서 많이 사용되며, psycopg2를 사용하면 파이썬에서 PostgreSQL 데이터베이스에 쉽게 접속하고 데이터를 조작할 수 있습니다.

import psycopg2

# 데이터베이스 연결
conn = psycopg2.connect(dbname='mydb', user='myuser', password='mypassword', host='localhost', port='5432')

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

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

# 데이터 삽입
cur.execute('INSERT INTO users (name, age) VALUES (%s, %s)', ('John', 25))

# 데이터 조회
cur.execute('SELECT * FROM users')
rows = cur.fetchall()
print(rows)

# 커밋 및 연결 종료
conn.commit()
conn.close()

3. pymysql

pymysql은 MySQL 데이터베이스와의 상호작용을 위한 파이썬 라이브러리입니다. MySQL은 가장 널리 사용되는 관계형 데이터베이스 중 하나이며, pymysql을 사용하면 파이썬에서 MySQL과 손쉽게 통신할 수 있습니다.

import pymysql

# 데이터베이스 연결
conn = pymysql.connect(host='localhost', user='myuser', password='mypassword', db='mydb', charset='utf8mb4', cursorclass=pymysql.cursors.DictCursor)

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

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

# 데이터 삽입
cur.execute('INSERT INTO users (name, age) VALUES (%s, %s)', ('John', 25))

# 데이터 조회
cur.execute('SELECT * FROM users')
rows = cur.fetchall()
print(rows)

# 커밋 및 연결 종료
conn.commit()
conn.close()

위에서 소개된 라이브러리들은 각각 SQLite, PostgreSQL, MySQL과 같은 데이터베이스 시스템과의 상호작용을 위한 파이썬 라이브러리입니다. 프로젝트의 요구사항과 데이터베이스 시스템의 특징에 따라 적합한 라이브러리를 선택하여 데이터베이스 구축 작업을 효율적으로 수행할 수 있습니다.


참고 자료