本記事では、Pythonを使ってSQLiteデータベースを操作する方法について解説します。Pythonの環境構築から、SQLiteデータベースの作成、データの操作方法、そしてエラーハンドリングまで、初心者向けにわかりやすく手順を紹介します。
本記事の読者層は以下の方を想定しています。
- Pythonを始めたばかりで、簡単なデータベース操作を学びたい人
- すでにPythonを使っていて、データベースの知識を拡張したい人
- システムやアプリケーションで高度なデータ操作を行いたい人
PythonでSQLiteを使う理由
PythonとSQLiteは非常に親和性が高く、特に軽量でシンプルなデータベース操作が必要な場合に最適です。SQLiteはサーバーを必要とせず、ファイルベースで管理できるため、簡単なプロジェクトやデータベースの試作段階では非常に有用です。さらに、Python標準ライブラリとして組み込まれているため、追加のインストールが不要で、すぐに使用できます。
SQLiteの特徴とPythonでのインストール方法
SQLiteとは?
SQLiteは、小型で高速、自己完結型のデータベースエンジンです。C言語で実装され、SQLベースのクエリを使ってデータの作成、読み込み、更新、削除(CRUD)操作を行えます。特にサーバー型のデータベースが必要ない場合や、軽量なアプリケーションのデータ管理に理想的です。
PythonでのSQLiteのインストール手順
SQLite はすべての携帯電話とほとんどのコンピューターに組み込まれており、人々が毎日使用する無数の他のアプリケーションにバンドルされています。
- QLite3は以下のHPから詳細を確認できます。
https://www.sqlite.org/
Pythonのバージョン確認とインストール
今回利用するPythonのバージョンの確認を行います。利用OSはLinux Ubuntu 18.04(Windows 11上)です。
まず、ターミナルでPythonのバージョンを確認します。
$python3 -V
Python 3.6.9
最新バージョンが必要な場合は、以下のようにインストールします。
今回は念のために、python3.7にアップグレードしておきます。以下のようにインストールすることでPython3.7をインストールできます。
その後、PythonとPipのバージョンを確認してください。
$sudo apt install python3.7
$python3 -V
Python 3.7.5
$pip3 -V
pip 19.3.1 from /home/user/.local/lib/python3.7/site-packages/pip (python 3.7)
Python3を実行します。
SQLiteの使用準備 Pythonの標準ライブラリにsqlite3
が含まれているため、特別なインストールは不要です。インポートするだけで使用可能です。
import sqlite3
PythonでのSQLite操作方法
データベースの接続とテーブルの作成
次に、SQLiteデータベースファイルに接続し、新しいテーブルを作成する方法を見ていきましょう。以下は、Cosmos.db
というデータベースを作成し、Member
というテーブルを追加するコードです。
% python3
Python 3.7.5 (default, Dec 9 2021, 17:04:37)
[GCC 8.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> os.getcwd()
'/home/user'
>>> import sqlite3
>>> conn=sqlite3.connect("Cosmos.db",isolation_level=None)
>>> sql="""
... CREATE TABLE Member (
... id VARCHAR(4),
... name VARCHAR(20),
... age INTEGER,
... email VARCHAR(128)
... );
... """
>>> conn.execute(sql)
<sqlite3.Cursor object at 0x7f8f722daf80>
>>> conn.close()
sql
という変数に、Member
テーブルを作成するSQL文を代入し、conn.execute(sql)
でそのSQL文を実行しています。
このSQL文は、次のような構造のテーブルを作成します。
id
: 4文字までの文字列を格納できる列name
: 20文字までの名前を格納できる列age
: 整数型の年齢を格納できる列email
: 128文字までのメールアドレスを格納できる列
conn.execute(sql)
により、このテーブルがデータベース内に作成されます。実行後、<sqlite3.Cursor object>
が返され、これは操作が成功したことを示すオブジェクトです。
python3.7が立ち上がらない場合
以下のようにコマンドを入力してみて下さい。
$python3.7
Python 3.7.5 (default, Dec 9 2021, 17:04:37)
[GCC 8.4.0] on linux
Type “help”, “copyright”, “credits” or “license” for more information.
これで、SQLteデータベース管理システムを利用してデータベースファイルCosmos.dbに接続します。このコマンドでCosmos.dbは存在しないので、コマンド入力時にファイルが出来ているはずです。
6. データベースファイルの確認
カレントディレクトリに作成された「Cosmos.db」ファイルの中身を確認しています。
カレントディレクトリに、Cosmos.dbが出来ていることを確認してみてください。
% ls
Cosmos.db
$ cat Cosmos.db
vGtableMemberMemberCREATE TABLE Member (
id VARCHAR(4),
name VARCHAR(20),
age INTEGER,
email VARCHAR(128)
cat
コマンドを使って「Cosmos.db」の内容を表示すると、データベースに作成されたMember
テーブルの情報が確認できます。テーブルの定義がファイルに反映されていることがわかります。
PythonでSQLiteを使うメリット
PythonとSQLiteを組み合わせるメリットとして、次の3つが挙げられます。
- 手軽にデータベースを扱える
サーバーを必要とせず、軽量なデータベースをすぐに作成・操作できる点が魅力です。 - 標準ライブラリの活用
Pythonの標準ライブラリとしてsqlite3
が含まれており、追加のインストールが不要で、すぐにプロジェクトに組み込めます。 - 高速なデータ処理
SQLiteはパフォーマンスも高く、特に小規模なアプリケーションや開発段階で非常に効率的に動作します。
まとめ
本記事では、Pythonを使ってSQLiteデータベースを操作する方法を解説しました。データベースのインストール方法から、データの挿入・取得、エラーハンドリングまでカバーしています。
- Python標準ライブラリで簡単にSQLiteを扱える
- SQLiteはサーバーレスで軽量かつ高速
- エラーハンドリングを活用して安全なデータ操作が可能
次回の記事をご期待下さい。どうぞよろしくお願いいたします。
コメント