データの挿入、取得 | SQLiteの基本操作 | Python本格超入門

スポンサーリンク
スポンサーリンク

SQLiteでデータの挿入と取得を行う方法

SQLiteは非常に軽量でシンプルなデータベースであり、Pythonと組み合わせて利用することで簡単にデータの管理ができます。この記事では、SQLiteを使ってデータベースにデータを挿入し、それを取得する基本的な方法を紹介します。

データを挿入する手順

データをデータベースに挿入するには、以下の手順を実行します。

  1. SQLiteデータベースに接続する
  2. データを挿入するためのSQL文を実行する
  3. コミットして変更を保存する
  4. 接続を閉じる

Pythonでのデータ挿入のコード例

以下はPythonを使用してSQLiteにデータを挿入するための具体的なコード例です。

# SQLiteモジュールをインポート
import sqlite3

# データベースに接続(ファイルが存在しない場合は作成されます)
conn = sqlite3.connect('example.db')

# カーソルを作成してSQL文を実行するために使用
cursor = conn.cursor()

# データを挿入するSQL文
cursor.execute('''
INSERT INTO users (name, age) VALUES (?, ?)
''', ('John Doe', 30))

# 変更を保存する
conn.commit()

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

# コメント:上記のコードは、usersテーブルに新しいレコードを挿入します。
# nameは'John Doe'、ageは30です。

コードの詳細な解説

  • cursor.execute(): SQL文を実行します。ここでは、INSERT INTO文を使ってusersテーブルにデータを挿入しています。
  • VALUES (?, ?): これはプレースホルダーを使って変数を埋め込む方法で、SQLインジェクション攻撃を防ぐために使われます。
  • conn.commit(): データの変更を保存します。これを行わないとデータはデータベースに保存されません。
  • conn.close(): データベース接続を閉じます。接続を開いたら、必ず最後に閉じることを忘れないようにしましょう。

データを取得する手順

次に、データを取得する手順です。挿入したデータを取り出すためには、以下の手順を実行します。

  1. SQLiteデータベースに接続する
  2. データを取得するためのSQL文を実行する
  3. データをフェッチして取り出す
  4. 接続を閉じる

Pythonでのデータ取得のコード例

以下は、データベースからデータを取得するコード例です。

# SQLiteモジュールをインポート
import sqlite3

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

# カーソルを作成
cursor = conn.cursor()

# データを取得するSQL文
cursor.execute('SELECT * FROM users')

# データを全てフェッチして取得
rows = cursor.fetchall()

# 取得したデータを表示
for row in rows:
    print(row)

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

# コメント:上記のコードは、usersテーブルの全てのデータを取得し、行ごとに出力します。
# SELECT * FROM usersは、すべてのカラムのデータを選択するSQL文です。

コードの詳細な解説

  • SELECT * FROM users: usersテーブルの全てのデータを取得します。特定のカラムを選択したい場合は、SELECT name, age FROM usersのように指定することもできます。
  • cursor.fetchall(): 全ての取得結果をリストとして返します。
  • for row in rows: データをループで回しながら、各行のデータを表示しています。

まとめ

SQLiteを使ってデータを挿入し、取得する方法について説明しました。Pythonのsqlite3モジュールを使うことで、データベースへのアクセスが非常に簡単に行えます。挿入時にはINSERT INTO文を使用し、取得時にはSELECT文を使用します。データベースに対する操作の基本的な流れを理解することができれば、より複雑な操作にも対応できるようになります。これらの基本操作は、実際のアプリケーションでのデータ管理に欠かせない技術です。