본문 바로가기

IT/개발

Python 에서 SQLite사용

단단히 기록을 관리하자니 역시 DB가 필요하다.

DB를 사용하기로 결정하니 자꾸만 추가(한자, 영어, 상식등)된다.

DB는 Python에 기본으로 있는 sqlite를 사용 하기로 결정했다.

(sqlite는 10년전쯤 아이폰 어플 개발때 한번 사용해본 경험이 있다.)

 

관리툴은 DB Browser for SQLite로 아주 편하고 마음에든다. 다운은 아래에서...

 

DB Browser for SQLite( https://sqlitebrowser.org/ )

 

SQLite 간단한 사용법

1. 준비

import sqlite3

# DB는 관리툴로 미리 생성해서 프로그램과 같은 경로에 만들어 두었다. (stgame.sqlite)

BASE_DIR   =  os.path.dirname(os.path.abspath(__file__))

TARGET_FILE = 'stgame.sqlite'

TARGET_FILE_FULL_PATH = os.path.join(BASE_DIR, TARGET_FILE)

con = sqlite3.connect(TARGET_FILE_FULL_PATH)

 

2. 기본사용

2-1 SELECT

        cur = con.cursor()

        cur.execute("select indatetime, name, win, wintext from statistics where gubun = 30 ORDER by win 

                         DESC LIMIT 10")

                         # LIMIT 3,2

          rows = cur.fetchall()       # 모든 쿼리 결과를 가져오기

          # cur.fetchone()             # 결과를 한개만 읽어오기

          # cur.fetchmany(3)          # 쿼리결과 여러개 가져오기

          cur.close()

 

2-2 INSERT

          cur = con.cursor()

          sql = "insert into statistics(indatetime,gubun,name,win,wintext) values (datetime('now', 'localtime'), ?, ?, ?, ?)"

                  # datetime('now') <= 8시간 차이난다.

                  # datetime('now', 'localtime') <= 이렇게 사용해야 우리 시간과 일치한다.

 

          cur.execute(sql, (in_gubun, sUser, iResult_temp, in_DB))

          con.commit()

          cur.close()

 

2-3 UPDATE

          cur = con.cursor()

          sql = "update elementary SET wrong = 0 "

          cur.execute(sql)

          con.commit()

          cur.close()

 

2-4 DELETE

          cur = con.cursor()

          sql = "delete from statistics"

          cur.execute(sql)

          con.commit()

          cur.close()