본문 바로가기
IT/Python

Python에서 SQLite3 쿼리문 간단하게 확인하기

by 소소메모 2022. 4. 30.
반응형

파이썬에서 파일 db 로 간단히 사용할 수 있는 SQLite3 

대부분 가벼운 쿼리로 처리를 하기 때문에 쿼리문을 직접 찾아 볼 때가 많지는 않지만

 

쿼리문을 동적으로 생성할 경우 실제 SQLite 에서 실행되는 쿼리문은

어떤것일 까 확인 할 상황이 가끔 있습니다.

 

그런 디버깅 시에 쉽게 쿼리문을 print 해서 확인할 수 있는 방법입니다.

 

<예시> set_trace_callback(print)

import sqlite3
con = sqlite3.connect(':memory:')
con.set_trace_callback(print)  # <-- 각 SQL 호출마다 SQL문을 print 처리 함 

cur = con.cursor()

# 테이블 생성
cur.execute('''CREATE TABLE stocks
               (date text, trans text, symbol text, qty real, price real)''')

# 데이터 Insert
cur.execute("INSERT INTO stocks VALUES ('2006-01-05','BUY','RHAT',100,35.14)")
con.commit()


# 데이터 조회 
symbol = 'RHAT'
cur.execute("SELECT * FROM stocks WHERE symbol = '%s'" % symbol)

# 조회 결과 출력 
print(cur.fetchall())

con.close()

 

 

3번째 라인

con.set_trace_callback(print) 

이 처럼 코드 한줄을 추가해주시면 됩니다.

 

즉, connect 객체 set_trace_callback 를 이용하여 print 함수를 전달합니다.

이렇게 하면 SQLite3 에 쿼리문이 전달되고 실행될 때 마다 해당 내용을 출력하게 됩니다.

 

 

<결과>

CREATE TABLE stocks
               (date text, trans text, symbol text, qty real, price real)
BEGIN 
INSERT INTO stocks VALUES ('2006-01-05','BUY','RHAT',100,35.14)
COMMIT
SELECT * FROM stocks WHERE symbol = 'RHAT'
[('2006-01-05', 'BUY', 'RHAT', 100.0, 35.14)]

 

실제 수행되는 쿼리문이 화면에 출력됩니다.

 

 

간단하죠?

즐겁고 행복한 개발 하세요. 😄

 

반응형

댓글