PythonでSQLiteに接続して、データを挿入、取得、更新する方法

Pythonは、SQLiteとの統合が非常に良いため、データベース操作に最適です。SQLiteは、軽量でサーバーレスのリレーショナルデータベースであり、Pythonをはじめとする多くのプログラミング言語で使用されています。この記事では、PythonSQLiteに接続し、データを取得、更新する方法を説明します。

SQLiteに接続する

まず、SQLiteに接続する必要があります。SQLiteに接続するには、Pythonの標準ライブラリのsqlite3を使用します。以下のコードでSQLiteに接続できます。

import sqlite3

conn = sqlite3.connect('example.db')

上記のコードでは、example.dbという名前のデータベースに接続しています。もしファイルが存在しない場合、新しいデータベースが作成されます。

テーブルの作成

次に、SQLiteにテーブルを作成します。以下のコードを使用して、test_tableという名前のテーブルを作成します。

import sqlite3

conn = sqlite3.connect('example.db')

cursor = conn.cursor()

cursor.execute('''CREATE TABLE test_table
                (id INT PRIMARY KEY NOT NULL,
                 name TEXT NOT NULL,
                 age INT NOT NULL);''')

conn.commit()

conn.close()

上記のコードでは、id、name、ageの3つのカラムを持つtest_tableを作成しています。

データを挿入する

次に、データをtest_tableに挿入します。以下のコードを使用して、データを挿入できます。

import sqlite3

conn = sqlite3.connect('example.db')

cursor = conn.cursor()

cursor.execute("INSERT INTO test_table (id, name, age) VALUES (1, 'John Doe', 30)")

conn.commit()

conn.close()

上記のコードでは、idが1、nameが'John Doe'、ageが30のデータをtest_tableに挿入しています。

データを取得する

次に、test_tableからデータを取得します。以下のコードを使用して、データを取得できます。

import sqlite3

conn = sqlite3.connect('example.db')

cursor = conn.cursor()

cursor.execute("SELECT * FROM test_table")

rows = cursor.fetchall()

for row in rows:
    print(row)

conn.close()

上記のコードでは、test_tableからすべてのデータを取得しています。fetchall()メソッドは、すべての行を含むリストを返します。取得したデータを1行ずつ表示しています。

データを更新する

最後に、test_tableのデータを更新します。以下のコードを使用して、データを更新できます。

import sqlite3

conn = sqlite3.connect('example.db')

cursor = conn.cursor()

cursor.execute("UPDATE test_table SET age = 40 WHERE id = 1")

conn.commit()

conn.close

上記のコードでは、idが1の行のageカラムの値を40に更新しています。

完了したら、データベースに対する操作をすべて終了し、接続を閉じる必要があります。これには、close()メソッドを使用します。

よく発生するエラーと対応方法

PythonSQLiteを操作する際によく発生するエラーと対応方法は以下の通りです。

"sqlite3.OperationalError: database is locked"

データベースが別のプロセスによってロックされている場合に発生するエラーです。通常、他のアプリケーションが同じデータベースにアクセスしている場合に発生します。対処法としては、他のアプリケーションがデータベースにアクセスしていないことを確認すること、または時間を置いてから再度実行することが挙げられます。

"sqlite3.IntegrityError: UNIQUE constraint failed"

データベースに一意性制約がある場合に、同じ値が複数回挿入された場合に発生するエラーです。このエラーを回避するには、重複したデータを削除するか、一意性制約を変更する必要があります。

"sqlite3.ProgrammingError: Incorrect number of bindings supplied"

プレースホルダーの数と実際のバインドされたパラメーターの数が一致しない場合に発生するエラーです。このエラーを回避するには、プレースホルダーの数とバインドするパラメーターの数を一致させる必要があります。

"sqlite3.OperationalError: no such table"

テーブルが存在しない場合に発生するエラーです。このエラーを回避するには、テーブルが存在することを確認するか、CREATE TABLE文を使用してテーブルを作成する必要があります。

"sqlite3.InterfaceError: Error binding parameter X - probably unsupported type."

パラメータの型がサポートされていない場合に発生するエラーです。このエラーを回避するには、正しいデータ型を使用する必要があります。

以上がPythonSQLiteを操作する際によく発生するエラーと対応方法です。

まとめ

この記事では、PythonSQLiteに接続して、データを取得、更新する方法を説明しました。SQLiteは軽量なリレーショナルデータベースであり、Pythonとの統合が非常に良いため、データベース操作に最適です。Pythonの標準ライブラリのsqlite3を使用して、SQLiteに接続し、テーブルを作成し、データを挿入、取得、更新する方法を説明しました。これらの操作を使用することで、Pythonで簡単にデータベースを操作できます。これらのプログラムはPythonの基本的な文法とライブラリで実装することができます。Pythonの基礎学習には下記のようなサイトの利用が有効です。

click.linksynergy.com

click.linksynergy.com

click.linksynergy.com