Python

Pythonで『SQLite3』データベースを操作する

アイキャッチ_SQLite3を操作する

アプリケーションのデータの格納先としてよく利用されるデータベースですが、サーバーの準備やデータベースの設定など大変なことも多いと思います。

この記事では比較的簡単に利用できる『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')]