이후 데이터베이스에서 select SQL로 유니버스를 조회할 수 있는 함수를 만듭니다. 함수명은 SQL을 실행한다는 의미에서 execute_sql로 지었으며, select 문뿐만 아니라 update 문, insert 문 같은 SQL 실행 역할도 할 수 있습니다.
db_helper.py
(...)
def execute_sql(db_name, sql, param={}):
with sqlite3.connect('{}.db'.format(db_name)) as con:
cur = con.cursor()
cur.execute(sql, param)
return cur
이 함수는 SQL과 SQL에 필요한 매개변수들을 딕셔너리 형태로 전달받아 SQL을 실행한 후 결과를 반환하는 역할을 합니다.
여기서 SQL 실행 결과를 반환하는 cur 객체는 사용한 SQL에 따라서 다음과 같이 쓸 수 있습니다.
➊ select 문은 cur.fetchall(), cur.fetchone()을 사용하여 조회 결과를 확인할 수 있습니다.
➋ 나머지(insert, update, delete)는 cur.rowcount를 사용하여 성공적으로 수행한 횟수를 확인할 수 있습니다.
따라서 execute_sql 함수는 SQL 실행 후에 결과를 확인할 수 있는 객체를 반환하며, SQL 결과 확인은 execute_sql을 호출한 영역에서 담당합니다.