Python

Python.DB 활용

calla1013 2025. 5. 25. 16:49
💡 파이썬과 데이터베이스 연동 완벽 가이드 (SQLite3 & Oracle)

💡 파이썬과 데이터베이스 연동 완벽 가이드 (SQLite3 & Oracle)

파이썬을 이용해 데이터를 저장하고 관리하는 방법이 궁금하신가요? 오늘은 SQLite3Oracle을 중심으로, 파이썬에서 데이터베이스를 다루는 핵심 내용을 콕! 집어드립니다.


📑 목차

  1. 데이터베이스(DB)와 파이썬의 필요성
  2. SQLite3와 파이썬 연동하기
  3. Oracle과 파이썬 연동하기 (cx_Oracle)
  4. 마무리하며

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