지금까지 select로 데이터베이스에 있는 데이터를 조회하는 방법을 살펴보았습니다. 그런데 생각해 보면 조회된 결과는 우리가 원하는 조건에 해당하는 것들이 아니라 그저 데이터베이스에 있는 모든 값을 가져온 것이었습니다. 원하는 조건에 해당하는 행을 선별하고자 where 키워드를 사용하여 조건을 만들어야 합니다. 예를 들어 보겠습니다.
db_helper.py
import sqlite3
conn = sqlite3.connect('universe_price.db', isolation_level=None)
cur = conn.cursor()
sql = "select * from balance where code = :code"
cur.execute(sql, {"code": '007700'})
row = cur.fetchone()
print(row)
sql = "select * from balance"에 where 키워드와 조건을 추가했습니다. where 이후에 등장하는 code = :code는 종목 코드(code) 값이 조회하고 싶은 종목 코드(:code)와 같을 때만 조회하라는 의미입니다. 여기서 :code는 cur.execute의 매개변수로 사용되는 딕셔너리 {"code": '007700'}으로 전달받습니다 따라서 이 코드는 balance 테이블에서 code 값이 '007700'인 행의 모든 열 데이터를 조회합니다. 이 코드를 실행하면 다음과 같이 출력됩니다.
('007700', 35000, 30, '20201222', 'today')