69 lines
2.3 KiB
Markdown
69 lines
2.3 KiB
Markdown
# 데이터베이스
|
|
파이썬은 다양한 데이터베이스와 상호 작용할 수 있는 풍부한 모듈을 제공합니다. 이러한 모듈들은 데이터 저장, 검색, 수정, 삭제 등 데이터베이스 관련 작업을 쉽고 효율적으로 수행할 수 있도록 도와줍니다.
|
|
|
|
- sqlite3
|
|
|
|
파이썬 표준 라이브러리에 포함되어 있어 별도 설치가 필요 없습니다.
|
|
단일 파일 데이터베이스로 간단한 애플리케이션에 적합합니다.
|
|
트랜잭션을 지원하며, ACID 특성을 만족합니다.
|
|
|
|
* 작은 규모의 데이터 저장, 캐싱, 설정 파일 등
|
|
* 웹 애플리케이션의 로컬 데이터 저장
|
|
|
|
- MySQLdb/PyMySQL
|
|
|
|
MySQL 데이터베이스와 연결하기 위한 모듈입니다.
|
|
MySQL의 강력한 기능을 활용할 수 있습니다.
|
|
|
|
* 대규모 웹 애플리케이션, 데이터 분석, 데이터베이스 기반 서비스 등
|
|
|
|
- psycopg2
|
|
|
|
PostgreSQL 데이터베이스와 연결하기 위한 모듈입니다.
|
|
PostgreSQL의 고급 기능을 활용할 수 있습니다.
|
|
* 대규모 데이터베이스, 데이터 웨어하우스 등
|
|
|
|
- SQLAlchemy
|
|
|
|
다양한 데이터베이스(MySQL, PostgreSQL, SQLite 등)를 통일된 인터페이스로 사용할 수 있는 ORM(Object-Relational Mapper)입니다.
|
|
객체 지향적인 방식으로 데이터베이스를 모델링할 수 있습니다.
|
|
* 복잡한 데이터 모델링, 데이터베이스 마이그레이션
|
|
|
|
- MongoDB(NoSQL)
|
|
|
|
문서 형태로 데이터를 저장하는 NoSQL 데이터베이스입니다.
|
|
유연한 데이터 모델링과 확장성이 뛰어납니다.
|
|
* 대규모 비정형 데이터 저장, 실시간 분석, 콘텐츠 관리 시스템
|
|
|
|
```python
|
|
import sqlite3
|
|
|
|
# 데이터베이스 연결
|
|
conn = sqlite3.connect('mydatabase.db')
|
|
|
|
# 커서 생성
|
|
cursor = conn.cursor()
|
|
|
|
# 테이블 생성
|
|
cursor.execute('''CREATE TABLE users (
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
name TEXT,
|
|
email TEXT
|
|
)''')
|
|
|
|
# 데이터 삽입
|
|
cursor.execute("INSERT INTO users (name, email) VALUES (?, ?)", ('Alice', 'alice@example.com'))
|
|
|
|
# 데이터 조회
|
|
cursor.execute("SELECT * FROM users")
|
|
results = cursor.fetchall()
|
|
for row in results:
|
|
print(row)
|
|
|
|
# 변경 사항 저장
|
|
conn.commit()
|
|
|
|
# 연결 종료
|
|
conn.close()
|
|
```
|