PYTHON · 파일/IO
SQLite 연동
sqlite3으로 경량 데이터베이스를 사용합니다. 별도 설치 없이 Python에 내장되어 있습니다.
파일/IO중급sqlite3SQLite데이터베이스SQL
핵심 설명
sqlite3으로 경량 데이터베이스를 사용합니다. 별도 설치 없이 Python에 내장되어 있습니다.
Python code
import sqlite3
# 메모리 DB (테스트/데모용)
conn = sqlite3.connect(":memory:")
conn.row_factory = sqlite3.Row # dict-like 접근
cursor = conn.cursor()
# 테이블 생성
cursor.execute("""
CREATE TABLE users (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
email TEXT UNIQUE,
age INTEGER
)
""")
# 데이터 삽입 (파라미터 바인딩)
users = [
("Alice", "alice@test.com", 30),
("Bob", "bob@test.com", 25),
("Carol", "carol@test.com", 35),
]
cursor.executemany(
"INSERT INTO users (name, email, age) VALUES (?, ?, ?)",
users
)
conn.commit()
# 조회
for row in cursor.execute("SELECT * FROM users WHERE age >= ?", (28,)):
print(f" {row['name']} ({row['age']}세) - {row['email']}")
# 집계
cursor.execute("SELECT AVG(age) as avg_age, COUNT(*) as cnt FROM users")
stats = cursor.fetchone()
print(f"평균 나이: {stats['avg_age']:.1f}, 총 {stats['cnt']}명")
# 컨텍스트 매니저로 안전하게
with conn:
conn.execute("UPDATE users SET age = ? WHERE name = ?", (31, "Alice"))
conn.close()학습 팁
row_factory = sqlite3.Row를 설정하면 컬럼명으로 값에 접근할 수 있습니다.
주의할 점
SQL 인젝션 방지를 위해 반드시 파라미터 바인딩(?)을 사용하세요. f-string으로 SQL을 조합하지 마세요.
자주 묻는 질문
SQLite 연동란 무엇인가요?
sqlite3 으로 경량 데이터베이스를 사용합니다. 별도 설치 없이 Python에 내장되어 있습니다.
SQLite 연동 학습 시 주의할 점은 무엇인가요?
SQL 인젝션 방지를 위해 반드시 파라미터 바인딩( ? )을 사용하세요. f-string으로 SQL을 조합하지 마세요.
Continue Learning
Python 학습을 이어가세요
총 200개의 독립 HTML 학습 문서 중 하나입니다. 각 문서는 고유 URL과 canonical 메타데이터를 가집니다.