PythonとSQLiteでデータの更新と削除を行う方法

この記事では、Python言語を用いてSQLiteデータベースでデータの更新と削除を行う方法を詳しく解説します。具体的なコード例、その詳細な解説、および応用例を2つを含めています。この情報が、あなたがSQLiteとPythonでより効率的なデータ操作を行うための参考になれば幸いです。

目次

SQLiteとは?

SQLiteは、軽量で高速なリレーショナルデータベース管理システムです。サーバーの設定や専用の管理者が不要で、アプリケーションに埋め込む形で使うことが多いです。

SQLiteの特徴

SQLiteには以下のような特徴があります。

  • サーバーレスであり、インストールやセットアップが不要
  • ACID(原子性、一貫性、独立性、永続性)トランザクションをサポート
  • SQL92の大部分をサポート

PythonとSQLiteの組み合わせ

Python標準ライブラリには`sqlite3`というSQLiteを操作するためのモジュールが含まれています。このモジュールを使って、データの更新や削除が可能です。

環境の準備

Pythonがインストールされていれば、特に追加のインストールは不要です。`sqlite3`はPython標準ライブラリに含まれています。

データの更新

まずはデータの更新から見ていきましょう。

基本的な更新方法

以下は、特定のレコードを探して更新する基本的なPythonコードです。

import sqlite3

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

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

# データを更新
cur.execute("UPDATE users SET age = ? WHERE name = ?", (30, "Alice"))

# 変更をコミット
conn.commit()

# 接続を閉じる
conn.close()

コードの詳細解説

1. `sqlite3.connect()`でSQLiteデータベースに接続します。
2. `cursor()`でカーソルオブジェクトを生成します。
3. `execute()`メソッドでSQL文を実行します。この例では、名前が”Alice”のユーザーの年齢を30に更新しています。
4. 最後に`commit()`で変更を確定し、`close()`でデータベース接続を閉じます。

データの削除

次に、データの削除方法を解説します。

基本的な削除方法

以下は、特定のレコードを削除する基本的なPythonコードです。

import sqlite3

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

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

# データを削除
cur.execute("DELETE FROM users WHERE name = ?", ("Alice",))

# 変更をコミット
conn.commit()

# 接続を閉じる
conn.close()

コードの詳細解説

1. 接続、カーソルの生成は更新と同じです。
2. `execute()`メソッドでDELETE文を実行します。この例では、名前が”Alice”のユーザーを削除しています。

応用例

以下は応用例です。

応用例1:一括更新

複数のレコードを一度に更新する例です。

# 複数のレコードを一度に更新
cur.executemany("UPDATE users SET age = ? WHERE name = ?", [(25, "Bob"), (40, "Charlie")])

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

更新と削除を一つのトランザクションとして処理する例です。

# トランザクション開始
conn.begin()

try:
  # データを更新
  cur.execute("UPDATE users SET age = 35 WHERE name = 'Dave'")
  # データを削除
  cur.execute("DELETE FROM users WHERE name = 'Eve'")
  
  # コミット
  conn.commit()
except:
  # ロールバック
  conn.rollback()

まとめ

PythonとSQLiteを用いて、データの更新と削除が非常に容易であることを示しました。特に`sqlite3`モジュールを活用することで、効率的なデータ操作が可能です。この記事が、データ操作の参考になれば幸いです。

コメント

コメントする

目次