Python×SQLiteで作るデータベース!インストールから実践まで徹底解説

この記事は < 1 分で読めます。
概要

本記事では、Pythonを使ってSQLiteデータベースを操作する方法について解説します。Pythonの環境構築から、SQLiteデータベースの作成、データの操作方法、そしてエラーハンドリングまで、初心者向けにわかりやすく手順を紹介します。

管理人

本記事の読者層は以下の方を想定しています。

本記事の読者層
  • Pythonを始めたばかりで、簡単なデータベース操作を学びたい人
  • すでにPythonを使っていて、データベースの知識を拡張したい人
  • システムやアプリケーションで高度なデータ操作を行いたい人
目次

PythonでSQLiteを使う理由

PythonとSQLiteは非常に親和性が高く、特に軽量でシンプルなデータベース操作が必要な場合に最適です。SQLiteはサーバーを必要とせず、ファイルベースで管理できるため、簡単なプロジェクトやデータベースの試作段階では非常に有用です。さらに、Python標準ライブラリとして組み込まれているため、追加のインストールが不要で、すぐに使用できます。

SQLiteの特徴とPythonでのインストール方法

SQLiteとは?

SQLiteは、小型で高速、自己完結型のデータベースエンジンです。C言語で実装され、SQLベースのクエリを使ってデータの作成、読み込み、更新、削除(CRUD)操作を行えます。特にサーバー型のデータベースが必要ない場合や、軽量なアプリケーションのデータ管理に理想的です。

PythonでのSQLiteのインストール手順

SQLite はすべての携帯電話とほとんどのコンピューターに組み込まれており、人々が毎日使用する無数の他のアプリケーションにバンドルされています。

QLite3のホームページ

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つが挙げられます。

  1. 手軽にデータベースを扱える
    サーバーを必要とせず、軽量なデータベースをすぐに作成・操作できる点が魅力です。
  2. 標準ライブラリの活用
    Pythonの標準ライブラリとしてsqlite3が含まれており、追加のインストールが不要で、すぐにプロジェクトに組み込めます。
  3. 高速なデータ処理
    SQLiteはパフォーマンスも高く、特に小規模なアプリケーションや開発段階で非常に効率的に動作します。

まとめ

本記事のまとめ
  • Python標準ライブラリで簡単にSQLiteを扱える
  • SQLiteはサーバーレスで軽量かつ高速
  • エラーハンドリングを活用して安全なデータ操作が可能

次回の記事をご期待下さい。どうぞよろしくお願いいたします。

関連リンク

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次