Pythonで始めるSQLite入門:簡単データベース操作ガイド

Pythonで始めるSQLite入門:簡単データベース操作ガイド

Pythonでデータベースを扱う際に非常に便利なのが「SQLite」です。本記事では、PythonとSQLiteを使って簡単なデータベース操作を行う方法を、初心者にもわかりやすく解説していきます。子供から大人まで理解できるよう、専門用語には説明を加えつつ、実際に動かしてみることで身につく内容になっています。

SQLiteとは何かを知ろう

Pythonで始めるSQLite入門を理解するには、まずSQLiteそのものについて知ることが大切です。

SQLite(エスキューライト)は、「軽量なデータベース管理システム」です。通常のデータベースシステム(例:MySQLやPostgreSQL)と違って、サーバーを立ち上げる必要がなく、1つのファイルとして保存できるのが特徴です。これにより、簡単なアプリケーションや個人用ツールに最適な選択肢となっています。

データベースとは?

データベースとは、大量の情報(データ)を整理して保存するための仕組みです。例えば、学校の生徒名簿や、図書館の本の一覧などもデータベースの一種です。データベースは、後からその情報を検索・更新・削除するのが簡単になるよう設計されています。

PythonでSQLiteを使う準備

Pythonで始めるSQLite入門のステップとして、まずPython環境の準備を行いましょう。

Pythonには標準でSQLiteが組み込まれており、特別なインストール作業は必要ありません。以下のコードで、SQLiteが使えることを確認してみましょう。

import sqlite3
print(sqlite3.version)

上記のコードを実行してエラーが出なければ、準備完了です。

データベースとテーブルの作成方法

Pythonで始めるSQLite入門の実践編として、まずはデータベースとテーブルを作成してみましょう。

import sqlite3

# データベースファイルに接続(なければ自動で作成される)
conn = sqlite3.connect('sample.db')

# カーソルオブジェクトの作成
cursor = conn.cursor()

# テーブルの作成
cursor.execute('''
    CREATE TABLE IF NOT EXISTS users (
        id INTEGER PRIMARY KEY AUTOINCREMENT,
        name TEXT,
        age INTEGER
    )
''')

# 保存して接続終了
conn.commit()
conn.close()

テーブルとは?

テーブルは、データベース内で情報を管理する単位です。表のように行(レコード)と列(カラム)で構成されます。この例では「users」という名前のテーブルを作り、「id」「name」「age」の3つのカラムを用意しています。

データの追加(INSERT)

次に、PythonとSQLiteを使ってデータを追加する方法を紹介します。

conn = sqlite3.connect('sample.db')
cursor = conn.cursor()

cursor.execute("INSERT INTO users (name, age) VALUES (?, ?)", ("たろう", 20))

conn.commit()
conn.close()

プレースホルダとは?

?はプレースホルダと呼ばれ、実際の値を後から挿入するために使います。これにより、セキュリティ面でも安全になります(SQLインジェクション対策)。

データの取得(SELECT)

登録したデータを表示してみましょう。

conn = sqlite3.connect('sample.db')
cursor = conn.cursor()

cursor.execute("SELECT * FROM users")
users = cursor.fetchall()

for user in users:
    print(user)

conn.close()

fetchallとは?

fetchall()は、検索結果をすべて取得する関数です。データはタプルのリストとして返されます。

データの更新(UPDATE)と削除(DELETE)

Pythonで始めるSQLite入門の最後に、データの更新と削除もやってみましょう。

# 年齢を更新
conn = sqlite3.connect('sample.db')
cursor = conn.cursor()

cursor.execute("UPDATE users SET age = ? WHERE name = ?", (25, "たろう"))
conn.commit()

# ユーザーの削除
cursor.execute("DELETE FROM users WHERE name = ?", ("たろう",))
conn.commit()

conn.close()

まとめ

Pythonで始めるSQLite入門を通じて、基本的なデータベース操作の流れを体験できたと思います。

SQLiteは、サーバーを使わずにすぐに始められる手軽さが魅力で、Pythonと組み合わせることで簡単にデータ管理ができます。今回の内容を元に、日記アプリ、タスク管理、住所録など、さまざまな小さなアプリを作ることができるはずです。

まずは自分でコードを動かしてみることが理解への近道です。次回は、GUI(グラフィカルユーザーインターフェース)と連携したSQLiteアプリケーションの作成方法も紹介予定です。