SQLite3は軽量でインストールが簡単なデータベースです。PythonではSQLite3を操作するライブラリを標準で提供しています。本記事ではPythonからSQLite3を操作する方法を紹介しますので、興味がある方はぜひ参考にしてください。
1. SQLite3とは?
SQLite3とは、軽量なリレーショナルデータベース「SQLite」のバージョン3を意味します。SQLite3はコンパクトでインストールが簡単なことから、スマートフォンなどの機器に組み込まれ、ローカルデータストレージとして活用されるケースも時にはあります。
PythonではSQLite3を操作するライブラリを「sqlite3」という名称で標準提供しています。ライブラリを詳しく確認したい方は、以下のリンクをご参考にしてください。
▸ 公式リファレンス
2. PythonからSQLite3を操作するには?使い方
「PythonからSQLite3を操作するにはどうしたらいいのだろう…」とお悩みの方も多いでしょう。ここでは、PythonからのSQLite3の基本的な操作方法を紹介しますので、ぜひ参考にしてください。
モジュールのインポートを行った上で、今回は「persons」というテーブルを作り、テーブルの中に人名のデータを格納。最後に格納したデータを全件取得してみます。
2.1 モジュールのインポート
まず、PythonのプログラムからSQLite3を操作するには、「sqlite3」というモジュールをインポートする必要があります。
「sqlite3」というモジュールはPythonの標準ライブラリのため、pipなどのコマンドを利用して、ライブラリの追加インストールは必要ありません。
Pythonのプログラムファイルの上部に以下のコードを記述するだけで、モジュールをインポートできます。
import sqlite3
2.2 データベース(DB)を作成する
データベースを作成する方法を解説します。データベースを作成するには、sqlite3.connect()を利用します。sqlite3.connect()は第一引数にデータベース名を渡すことで、データベースを作成できるライブラリです。
import sqlite3
# カレントディレクトリにTEST.dbがなければ、作成します。
# すでにTEST.dbが作成されていれば、TEST.dbに接続します。
dbname = 'TEST.db'
conn = sqlite3.connect(dbname)
# データベースへのコネクションを閉じる。(必須)
conn.close()
2.3 テーブル(table)を作成する
テーブルを作成する方法を解説します。テーブルを作成する際に、次の順番で処理を実装します。
1. データベースに接続
2. カーソルオブジェクトを作成
3. テーブルのCreate文を実行
4. データベースに情報をコミット
5. データベースの接続を切断
今回は「persons」というテーブルを作ります。
import sqlite3
dbname = 'TEST.db'
# 1.データベースに接続
conn = sqlite3.connect(dbname)
# 2.sqliteを操作するカーソルオブジェクトを作成
cur = conn.cursor()
# 3.テーブルのCreate文を実行(例ではpersonsテーブルを作成)
cur.execute(
'CREATE TABLE persons(id INTEGER PRIMARY KEY AUTOINCREMENT, name STRING)')
# 4.データベースに情報をコミット
conn.commit()
# 5.データベースの接続を切断
cur.close()
conn.close()
2.4 テーブル(table)にデータを登録する
テーブルにデータを登録する方法を解説します。データを登録する場合、次の順番で処理を実装します。
1. データベースに接続
2. カーソルオブジェクトを作成
3. テーブルにデータを登録するINSERT文を実行
4. データベースにデータをコミット
5. データベースの接続を切断
今回は作成した「persons」テーブルにINSERT文で「Sato」「Suzuki」「Takahashi」という人名データを格納していきます。
import sqlite3
dbname = 'TEST.db'
# 1.データベースに接続
conn = sqlite3.connect(dbname)
# 2.sqliteを操作するカーソルオブジェクトを作成
cur = conn.cursor()
# 3.テーブルに人名データを登録する
# 例では、personsテーブルのnameカラムに「Sato」「Suzuki」「Takahashi」というデータを登録
cur.execute('INSERT INTO persons(name) values("Sato")')
cur.execute('INSERT INTO persons(name) values("Suzuki")')
cur.execute('INSERT INTO persons(name) values("Takahashi")')
# 4.データベースにデータをコミット
conn.commit()
# 5.データベースの接続を切断
cur.close()
conn.close()
2.5 テーブル(table)のデータを取得する
テーブルの登録データを取得する方法を解説します。データを取得する場合、次の順番で処理を実装します。
1. データベースに接続
2. カーソルオブジェクトを作成
3. テーブルのデータを取得
4. データベースの接続を切断
「persons」テーブルの人名データを全件取得してみましょう。
import sqlite3
dbname = 'TEST.db'
# 1.データベースに接続
conn = sqlite3.connect(dbname)
# 2.sqliteを操作するカーソルオブジェクトを作成
cur = conn.cursor()
# 3.テーブルのデータを取得
# 例では、personsテーブルデータを全件取得
cur.execute('SELECT * FROM persons')
# 取得したデータを出力
for row in cur:
print(row)
# 4.データベースの接続を切断
cur.close()
conn.close()
2.6 テーブル(table)のデータを更新・削除する
テーブルの登録データを更新・削除する方法を解説します。データを更新・削除する場合、次の順番で処理を実装します。
1. データベースに接続
2. カーソルオブジェクトを作成
3. テーブルのデータを更新・削除
4. データベースにデータをコミット
5. データベースの接続を切断
先に格納した人名データのうち「Takahashi」を「Tanaka」に変えてみましょう。
import sqlite3
dbname = 'TEST.db'
# 1.データベースに接続
conn = sqlite3.connect(dbname)
# 2.sqliteを操作するカーソルオブジェクトを作成
cur = conn.cursor()
# 3.テーブルのデータを更新・削除
# データ更新(例ではカラム「name」の「Takahashi」を「Tanaka」に変更します)
cur.execute('UPDATE persons SET name = "Tanaka" WHERE name = "Takahashi"')
# データ削除(例ではカラム「name」の「Suzuki」を削除します)
cur.execute('DELETE FROM persons WHERE name = "Suzuki"')
# 取得したデータはカーソルの中に入る
for row in cur:
print(row)
# 4.データベースにデータをコミット
conn.commit()
# 5.データベースの接続を切断
cur.close()
conn.close()
3. GUIツールを活用したSQLiteのテーブル確認方法
PythonのプログラムコードからSQLiteのテーブルを操作した結果をGUIツールで確認したい方もいらっしゃるでしょう。ここでは、SQLiteのテーブルをGUIで確認できる「DB Browser For SQLite」を紹介します。
3.1 DB Browser For SQLiteとは
DB Browser For SQLiteとは、SQLiteをGUIで管理できる無料ツールです。OSはSQLiteのテーブルのデータ閲覧はもちろん編集、肥大化したデータベースを最適化できます。
Windows・macOS・Linux・FreeBSDと幅広いOSに対応しているのも特徴です。
3.1.1 ダウンロード方法
DB Browser For SQLiteのインストーラーは、公式サイトのDownloadsページよりダウンロードします。
2021年9月時点の最新バージョンは「3.12.2」です。対応OSは以下の通りです。
• Windows OS
• macOS
• Linux(※)
• FreeBSD
(※)Arch Linux、Fedora、openSUSE、Debian、Ubuntuが対応しています。
3.1.2 インストール方法
Windows 10(64bit)にインストールした場合の方法を解説します。
公式サイトのDownloadsページより「DB Browser for SQLite - Standard installer for 64-bit Windows」をクリックし、インストーラーをダウンロードします。
「DB.Browser.for.SQLite-X.XX.X-win64.msi」をダブルクリックします。SetUp画面が表示されますので、「Next」ボタンをクリックします。
ライセンス同意画面が表示されますので、「I accept~」のチェックボックスをチェックして、「Next」ボタンをクリックします。
ショートカットキーの作成画面が表示されますので、必要に応じてチェックし、「Next」ボタンをクリックします。
インストールディレクトリを設定する画面が表示されますので、必要に応じて「Browse」ボタンをクリックし、ディレクトリを変更して、「Next」ボタンをクリックします。
インストールの最終確認画面が表示されますので、「Install」ボタンをクリックします。
セットアップが完了した旨の画面が表示されたら、「Finish」ボタンをクリックします。
以上で、インストールは完了です。
3.2 データベース(DB)の読み込み方法
DB Browser for SQLiteでデータベースを読み込む方法を解説します。
まずショートカットキー または「DB Browser for SQLite.exe」をダブルクリックして、DB Browser for SQLiteを起動します。「データベースを開く」をクリックします。
ファイルを選択する画面が表示されますので、SQLiteのデータファイルを選択し、「開く」ボタンをクリックします。
左側のデータベース構造にデータベースの情報が表示されます。
4. Python及びデータベース関連の求人動向
SQLite3は組み込み開発に使用されるほか、アプリのデータベースとして保守運用業務でも重用されることが多いです。
アプリの新規開発業務でも、データベース周りの要件としてSQLite3が指定されているケースがあります。
SQLite3に関連するアプリ開発やデータベース周りの保守運用業務のフリーランス案件は弊社が運営する「プロエンジニア」でも多数紹介しております。月額単価の目安はおよそ60~80万円前後です。
以下のリンクから案件を検索してみてください。
5. まとめ
今回はPythonのsqlite3というライブラリの使い方を紹介しました。SQLiteは簡単に導入できるため、気軽に利用できるのが特徴です。
Pythonやデータベースを学び始めた方には、データベースを気軽に学べるので、ピッタリなデータベースです。興味がある方は、ぜひ本記事を参考にしてsqlite3を利用してプログラミングしてみてください。