アプリケーションのデータの格納先としてよく利用されるデータベースですが、サーバーの準備やデータベースの設定など大変なことも多いと思います。
この記事では比較的簡単に利用できる『SQLite3』データベースをPythonから操作する方法についてまとめたいと思います。
SQLite3を操作する
sqlite3モジュールを使用してデータベースの作成、データの登録、データの抽出をします。
データベースの作成
データベースの作成は次のように記述します。カレントディレクトリにデータベースが作成されます。
import sqlite3
# データベースの作成
conn = sqlite3.connect('sample.db')
# データベースを閉じる
conn.close()
テーブルの作成
executeメソッドにcreate文を渡すことでデータの登録ができます。
import sqlite3
# データベースに接続
conn = sqlite3.connect('sample.db')
# カーソルオブジェクトを生成
cur = conn.cursor()
# SQL発行(テーブル作成)
cur.execute('create table todohuken(code integer primary key, name string, name_ryaku string)')
# データベースを閉じる
conn.close()
テーブルが存在しない場合にのみ作成する場合は次のようにcreate文を発行することで実現できます。
# SQL発行(テーブル作成)
cur.execute('create table if not exists todohuken(code integer primary key, name string, name_ryaku string)')
データの登録(1件)
executeメソッドにinsert文を渡すことでデータの登録ができます。
import sqlite3
# データベースに接続
conn = sqlite3.connect('sample.db')
# カーソルオブジェクトを生成
cur = conn.cursor()
# SQL発行(データ登録)
cur.execute("insert into todohuken values (1, '北海道', 'HKD')")
# コミット
conn.commit()
# データベースを閉じる
conn.close()
データの登録(複数件)
executemanyメソッドにinsert文と登録するリストデータを渡すことでまとめて登録することができます。
import sqlite3
# データベースに接続
conn = sqlite3.connect('sample.db')
# カーソルオブジェクトを生成
cur = conn.cursor()
# SQL発行(データ登録)
data = [(2,'青森県','AOM'), (3,'岩手県','IWT'), (4,'宮城県','MYG'), (5,'秋田県','AKT'), (6,'山形県','YGT'), (7,'福島県','FKM')]
cur.executemany('insert into todohuken values (?,?,?)', data)
# コミット
conn.commit()
# データベースを閉じる
conn.close()
データの抽出
executeメソッドにselect文を渡すことでデータの取得ができます。
import sqlite3
# データベースに接続
conn = sqlite3.connect('sample.db')
# カーソルオブジェクトを生成
cur = conn.cursor()
# SQL発行(データ取得)
cur.execute('select * from todohuken')
print(cur.fetchall())
# データベースを閉じる
conn.close()
# 実行結果
# [(1, '北海道', 'HKD'), (2, '青森県', 'AOM'), (3, '岩手県', 'IWT'), (4, '宮城県', 'MYG'), (5, '秋田県', 'AKT'), (6, '山形県', 'YGT'), (7, '福島県', 'FKM')]