SQLite - Python으로 DB 구축
2024. 1. 17. 21:20ㆍpython
요즘 많은 양의 데이터를 조회하고 관리하다보니, 이를 효율적으로 하고 싶다는 needs가 많이 생겼다.
python multiprocessing 관련 - https://jaeha-lee.tistory.com/7
python - multiprocessing, pool, process
키워드 : pool, process, pool.starmap 대용량, 많은 양의 데이터를 옮기고 이동하면서 병렬 프로그래밍의 필요성을 느끼고 얻게 된 내용을 정리하고자 한다. (이론보다는 코드 기반으로...) python은 기본
jaeha-lee.tistory.com
개발 환경 상 서버없이 하는 경우가 필요했는데 SQLite라는 Python에서 제공하는 모듈이 있었다.
SQLite는 서버없이 로컬에서 파일로 데이터베이스를 관리할 수 있다고 한다. 많은 서비스에서 내장 데이터 베이스로 많이 사용된다고 한다.
본 포스팅에서는 SQLite에 대해서 포스팅하고자 한다.
먼저 간략하게 db를 생성하고 데이터를 집어 넣는 과정
import sqlite3
# 데이터베이스 연결
conn = sqlite3.connect('example.db')
# 커서 생성
cursor = conn.cursor()
# 테이블 생성
cursor.execute('''
CREATE TABLE IF NOT EXISTS users (
id INTEGER PRIMARY KEY,
name TEXT,
age INTEGER
)
''')
# 데이터 삽입
cursor.execute('INSERT INTO users (name, age) VALUES (?, ?)', ('John Doe', 25))
# 쿼리 실행 및 결과 가져오기
cursor.execute('SELECT * FROM users')
rows = cursor.fetchall()
for row in rows:
print(row)
"""
출력
(1, 'John Doe', 25)
(2, 'Jane Smith', 30)
"""
# 연결 종료
conn.close()
이런식으로 실행을 하면 example.db에 계속 데이터가 축적되게 된다.
dict 데이터 Sqlite로 집어넣기
import sqlite3
# 딕셔너리 데이터 예제
data = [
{'id': 1, 'name': 'John', 'age': 25},
{'id': 2, 'name': 'Jane', 'age': 30},
# 추가적인 딕셔너리 데이터들...
]
# SQLite 데이터베이스에 연결
conn = sqlite3.connect('./dict_example.db')
# 커서 생성
cursor = conn.cursor()
# 테이블 생성 (이미 테이블이 있다면 생략 가능)
cursor.execute('''
CREATE TABLE IF NOT EXISTS test (
id INTEGER PRIMARY KEY,
name TEXT,
age INTEGER
)
''')
# 딕셔너리 데이터를 데이터베이스에 삽입
for item in data:
cursor.execute('INSERT INTO test (id, name, age) VALUES (?, ?, ?)', (item['id'], item['name'], item['age']))
# 데이터베이스에 변경 사항 저장
conn.commit()
# 연결 종료
conn.close()
sqlite 데이터 조회하기
import sqlite3
# SQLite 데이터베이스에 연결
conn = sqlite3.connect('dict_example.db')
# 커서 생성
cursor = conn.cursor()
# 데이터 조회
cursor.execute('SELECT * FROM test')
rows = cursor.fetchall()
# 나이가 25 이상인 사용자 조회
cursor.execute('SELECT * FROM users WHERE age >= ?', (25,))
filtered_rows = cursor.fetchall() # 리스트로 반환함
import pdb;pdb.set_trace()
# 결과 출력
for row in rows:
print(row)
# 연결 종료
conn.close()
'python' 카테고리의 다른 글
SQLite - Json파일 여러개 병렬로 DB 구축 (Feat. Multiprocessing) (0) | 2024.01.17 |
---|---|
SQLite - json파일을 DB화 (0) | 2024.01.17 |
Flask & React 연결 (1) | 2024.01.10 |
Using Flask + s3 image viewer (1) | 2024.01.10 |
다각형 겹친 부분의 넓이 구하기 (Python w/ shapely) (0) | 2024.01.08 |