LoginSignup
2
2

More than 1 year has passed since last update.

【Python】SQLite3の使用方法

Last updated at Posted at 2022-03-22

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()
2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2