PythonでSQLiteを使ったバッチ処理と自動化の実践ガイド

この記事では、PythonでSQLiteを使ってバッチ処理と自動化を行う方法について解説します。具体的なコード例とその解説、応用例を含めています。

目次

はじめに

SQLiteは軽量で使いやすいデータベースエンジンであり、Pythonとの相性も非常によいです。この組み合わせを使って、バッチ処理や自動化タスクを実現する方法を説明します。

基本的なバッチ処理の流れ

PythonとSQLiteを使ったバッチ処理は以下のような手順で行います。

SQLiteデータベースの接続

最初にSQLiteデータベースに接続する必要があります。

import sqlite3

# SQLiteデータベースに接続
conn = sqlite3.connect('example.db')

テーブルの作成とデータの挿入

テーブルを作成し、データを挿入します。

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

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

# データを挿入
cursor.execute("INSERT INTO users (name) VALUES ('Alice')")

# コミット
conn.commit()

クエリの実行とデータの取得

作成したテーブルに対してクエリを実行し、データを取得します。

# クエリを実行
cursor.execute("SELECT * FROM users")

# データを取得
rows = cursor.fetchall()
for row in rows:
    print(row)

データベースのクローズ

最後にデータベースをクローズします。

# データベースをクローズ
conn.close()

応用例1: データのバルクインサート

大量のデータを一度にインサートする方法について説明します。

# バルクインサートするデータ
data = [('Bob',), ('Charlie',), ('Dave',)]

# executemanyを使ってデータを挿入
cursor.executemany("INSERT INTO users (name) VALUES (?)", data)

# コミット
conn.commit()

応用例2: トランザクションの制御

トランザクションを制御する方法を紹介します。

try:
    # データを挿入
    cursor.execute("INSERT INTO users (name) VALUES ('Eve')")

    # データを削除
    cursor.execute("DELETE FROM users WHERE name = 'Alice'")

    # コミット
    conn.commit()
except:
    # エラーが発生した場合はロールバック
    conn.rollback()

まとめ

PythonとSQLiteを用いて、基本的なバッチ処理から応用までの一連の流れを解説しました。この知識を活かして、データ操作を自動化する際の参考にしてください。

コメント

コメントする

目次