차밍이
[Python] SQlite3 DB에 데이터 저장 및 조회 본문
반응형
목차
파이썬으로 작업하다보면 SQL 데이터 작업을 해야할 때가 생깁니다.
SQLite 데이터베이스를 파이썬에서 연결하는 방법에 대해서 알아보겠습니다.
전체적인 Flow
파이썬에서 DB 파일에 연결하고 작업하는 전체적인 과정입니다.
import sqlite3
con = sqlite3.connect('example.db')
cur = con.cursor()
# 테이블 만들기
cur.execute('''CREATE TABLE stocks
(date text, trans text, symbol text, qty real, price real)''')
# ROW 단위로 데이터 저장하기
cur.execute("INSERT INTO stocks VALUES ('2006-01-05','BUY','RHAT',100,35.14)")
# 데이터 저장하기
con.commit()
# connection 종료하기
con.close()
1. con
은 Connect 객체로 데이터베이스와 연결하는 역할을 합니다.
2. Connection을 얻었으면, Cursor 객체를 만들어 cur
을 사용해서 SQL의 전반적인 작업을 수행합니다.
3. execute
메소드를 사용해서 SQL 문법을 수행할 수 있습니다.
4. 모든 작업이 끝났다면, Connection에서 commit
을 수행하여 변경된 내용을 DB에 저장합니다.
5. 이후 DB와연 연결을 종료해 마무리를 합니다.
SQL 데이터 조회
데이터 가져오기 : execute / fetchone / fetchall()
# 방법 1 직접 작성
cur.execute("SELECT * FROM stocks WHERE symbol='AAPL'")
print(cur.fetchone())
# 방법 2 변수 넣기
t = ('AAPL',)
cur.execute('SELECT * FROM stocks WHERE symbol=?', t)
print(cur.fetchone())
print(cur.fetchall())
execute
는 단순 실행만합니다.
데이터를 꺼내려면, cur
를 iterator로 사용하거나, fetchone
method를 사용해서 단일행 데이터를 그져와야 합니다.
다수의 행을 한 번에 조회하려면 fetchall()
메소드를 사용하면 됩니다.
다수의 데이터 저장하기 : executemany
purchases = [('2006-03-28', 'BUY', 'IBM', 1000, 45.00),
('2006-04-05', 'BUY', 'MSFT', 1000, 72.00),
('2006-04-06', 'SELL', 'IBM', 500, 53.00),
]
cur.executemany('INSERT INTO stocks VALUES (?,?,?,?,?)', purchases)
다수의 데이터를 저장할때에는 executemany
메소드를 사용합니다.
반응형
'파이썬 > 기본 문법 정리' 카테고리의 다른 글
Python - CPU Core 수 확인하는 2가지 방법 os, multiprocessing (0) | 2023.06.20 |
---|---|
[파이썬] Dataframe 대용량 빅데이터 빠르게 읽고 쓰는 방법 (0) | 2023.04.14 |
[Python] 파일 옮기기 복사하기 - shutil 모듈 move copy (0) | 2023.02.06 |
[Python] SQL 데이터 Pandas DataFrame으로 불러오기 & 저장하기 (0) | 2023.01.31 |
[Python] 랜덤한 데이터로 DataFrame 만들기 (0) | 2023.01.26 |
Pandas DataFrame 성능 빠르게하기 - apply말고 Vectorization쓰자 (2) | 2023.01.02 |
[Python] 파일 및 폴더 디렉토리 삭제하는 법 총정리 (0) | 2022.12.13 |
[Python] datetime 모듈 날짜 시간 포맷 맞추기와 포맷 코드 종류 (0) | 2022.07.08 |
관련된 글 보기
Comments