💡 파이썬과 데이터베이스 연동 완벽 가이드 (SQLite3 & Oracle)
파이썬을 이용해 데이터를 저장하고 관리하는 방법이 궁금하신가요? 오늘은 SQLite3와 Oracle을 중심으로, 파이썬에서 데이터베이스를 다루는 핵심 내용을 콕! 집어드립니다.
📑 목차
- 데이터베이스(DB)와 파이썬의 필요성
- SQLite3와 파이썬 연동하기
- Oracle과 파이썬 연동하기 (cx_Oracle)
- 마무리하며
1️⃣ 데이터베이스(DB)와 파이썬의 필요성
✅ 데이터베이스의 역할
데이터베이스는 정보를 효율적으로 저장, 조회, 수정, 삭제하는 시스템입니다.
회원 정보, 게시판 글, 상품 목록 등 모든 웹 시스템의 핵심입니다.
✅ 왜 파이썬으로 DB를 다루어야 할까?
- 데이터 분석, 머신러닝, 웹 개발에 적합한 파이썬
- MySQL, PostgreSQL, SQLite, Oracle 등 다양한 DB 지원
sqlite3,cx_Oracle같은 강력한 내장/외부 라이브러리 존재
2️⃣ 경량 데이터베이스 SQLite3와 파이썬
🔹 SQLite3 특징
- 가볍고 빠름 (서버 설치 없이 파일 기반)
- 파이썬에 기본 포함 →
pip install필요 없음 - IoT, 앱, 소규모 웹사이트에 적합
🔧 기본 사용법
import sqlite3
# DB 연결 (파일이 없으면 생성됨)
conn = sqlite3.connect('mydb.db3')
cursor = conn.cursor()
# 테이블 생성
cursor.execute('''
CREATE TABLE IF NOT EXISTS students (
id INTEGER PRIMARY KEY,
name TEXT NOT NULL,
age INTEGER
)
''')
# 데이터 삽입
cursor.execute("INSERT INTO students (name, age) VALUES (?, ?)", ('김철수', 20))
conn.commit()
# 데이터 조회
cursor.execute("SELECT * FROM students")
print(cursor.fetchall())
📌 여러 데이터 삽입 (executemany)
students = [('이영희', 22), ('박지성', 25), ('최유리', 21)]
cursor.executemany("INSERT INTO students (name, age) VALUES (?, ?)", students)
conn.commit()
🧹 UPDATE 및 DELETE
cursor.execute("UPDATE students SET age = ? WHERE name = ?", (21, '김철수'))
cursor.execute("DELETE FROM students WHERE name = ?", ('박지성',))
conn.commit()
🔐 트랜잭션 처리
try:
cursor.execute("INSERT INTO students (name, age) VALUES (?, ?)", ('새학생', 30))
conn.commit()
except:
conn.rollback()
finally:
conn.close()
3️⃣ 대용량 데이터베이스 Oracle과 파이썬 (cx_Oracle)
📦 Oracle DB란?
금융, 통신, 제조 등에서 사용하는 대규모 RDBMS입니다.
빠르고 안정적이며, 수백 GB~TB 단위의 데이터를 처리할 수 있습니다.
🔧 cx_Oracle 설치 및 연결
pip install cx_Oracle
import cx_Oracle
dsn = "user/password@localhost:1521/XE" # 예: Oracle Express Edition
conn = cx_Oracle.connect(dsn)
cursor = conn.cursor()
📍 단일 SQL 실행: execute()
cursor.execute("INSERT INTO employees (id, name, salary) VALUES (:id, :name, :salary)",
id=1, name='홍길동', salary=50000)
conn.commit()
📍 다중 SQL 실행: executemany()
data = [(2, '이순신', 60000), (3, '유관순', 55000)]
cursor.executemany("INSERT INTO employees (id, name, salary) VALUES (:1, :2, :3)", data)
conn.commit()
📊 SELECT 결과 조회
cursor.execute("SELECT name, salary FROM employees WHERE salary > 50000")
rows = cursor.fetchall()
for row in rows:
print(row)
🧩 마무리하며
SQLite3와 Oracle은 목적에 따라 선택할 수 있는 훌륭한 데이터베이스입니다.
SQLite3는 가볍고 빠른 개발에, Oracle은 안정적이고 대규모 트랜잭션에 적합합니다.
지금 배운 코드들을 실습하면서
진짜 동작하는 데이터 관리 시스템
을 만들어보세요!
'Python' 카테고리의 다른 글
| Matplotlib_Cheat_ (0) | 2025.05.25 |
|---|---|
| Pandas_Cheat_ (0) | 2025.05.25 |
| Python.데이터 수집 (0) | 2025.05.25 |
| Python.GUI (1) | 2025.05.25 |
| Python.기초 (0) | 2025.05.25 |