【Python】SQLite3の使用方法


SQLite3をPythonで操作する

現在Django、Flaskなどのフレームワークを使用せずに、
簡単なWebアプリケーション(Todo管理アプリ)を開発してます。
DBを何にするか(何が使用できるか)調査したところ、標準でSQLite3が
使用できるとのことなので、
Pythonのsqlite3を使用してPythonのコードでsqlite3を操作する方法を記載します。
(初投稿のため優しく見守れっていただけると嬉しいです)

参考ドキュメント

python公式ドキュメント

Pythonバージョン

Pythonバージョンは以下で確認できる。

python -V

Python 3.8.0

基本的な記載方法

基本的には以下のように記載方法になる。

import sqlite3
dbname = 'example.db'

conn = sqlite3.connect(dbname)
cur = conn.cursor()
cur.execute(sqlクエリ)
conn.commit()
conn.close()

import sqlite3でsqlite3をインポートする
connect(dbname)で使用するDBファイルに接続する(.dbファイルが存在しない場合、新規で作成される。)
cursor()でオブジェクト化しexecuteが実行できるようにする。
execute(sqlクエリ)でsqlクエリを実行できます。
DBに変更がある場合に、commitすることで更新できる。
close()でDBとの接続を閉じる

テーブル作成

create_table.py
import sqlite3
dbname = 'example.db'
conn = sqlite3.connect(dbname)
cur = conn.cursor()
cur.execute('CREATE TABLE examples(id INTEGER PRIMARY KEY AUTOINCREMENT, name STRING, price INTEGER)')
conn.close()

create文でテーブルを作成する
id INTEGER PRIMARY KEY でidを指定しなくても値がn+1で作成される(最終が3の場合4が入る)
AUTOINCREMENTを入れると最終が3のデータを削除後、データを登録されると3ではなく、4が入る。

データ登録

innsert.py
import sqlite3
dbname = 'example.db'
conn = sqlite3.connect(dbname)
cur = conn.cursor()
cur.execute('INSERT INTO examples values(1, "りんご",100)')
 # コミットしないと反映されないため、登録、変更処理をした際はcommit()する
conn.commit()
conn.close()

データ取得

select.py
import sqlite3
dbname = 'example.db'
conn = sqlite3.connect(dbname)
cur = conn.cursor()
cur.execute('SELECT * FROM examples')
conn.close()

データ更新

update.py
import sqlite3
dbname = 'example.db'
conn = sqlite3.connect(dbname)
cur = conn.cursor()
cur.execute('UPDATE examples SET price = 260 WHERE id = "3"')
conn.commit()
conn.close()

データ削除

delete.py
import sqlite3
dbname = 'example.db'
conn = sqlite3.connect(dbname)
cur = conn.cursor()
cur.execute('DELETE FROM examples WHERE id = "2"')
conn.commit()
conn.close()