PythonでSQLiteデータインポートとエクスポートをマスターする方法

この記事では、Pythonを用いたSQLiteでのデータインポートとエクスポートについて詳しく解説します。具体的なコード例、その詳細な解説、さらには応用例まで、実用的かつ深みのある内容でお伝えします。

目次

はじめに

データベースは現代のソフトウェア開発において欠かせない要素です。特に、軽量で使いやすいSQLiteは多くの場面で活躍します。しかし、データのインポートとエクスポートは初心者にとっては少々複雑に感じるかもしれません。この記事ではPythonを使ってこれを如何にシンプルに、そして効率的に行うかを解説します。

基本的なデータインポート

まずは基本的なデータインポートから始めましょう。CSVファイルからSQLiteにデータをインポートする簡単な例を紹介します。

コード例

import sqlite3
import csv

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

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

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

# CSVファイルからデータを読み込む
with open('users.csv', 'r') as f:
    reader = csv.reader(f)
    for row in reader:
        # データをインポート
        c.execute("INSERT INTO users (id, name, age) VALUES (?, ?, ?)", (row[0], row[1], row[2]))

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

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

コードの解説

このコードでは、まずSQLiteデータベースに接続しています。そして、`users`というテーブルを作成しています。このテーブルには`id`、`name`、`age`の3つのカラムがあります。その後、CSVファイル(`users.csv`)を開き、その内容を行ごとにデータベースにインポートしています。

基本的なデータエクスポート

次に、SQLiteデータベースからデータをCSVファイルにエクスポートする基本的な例を見てみましょう。

コード例

# SQLiteデータベースからデータをCSVファイルにエクスポートする例
import sqlite3
import csv

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

# CSVファイルを開く
with open('exported_users.csv', 'w') as f:
    writer = csv.writer(f)

    # データをエクスポート
    for row in c.execute('SELECT * FROM users'):
        writer.writerow(row)

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

コードの解説

このコードでもまずSQLiteデータベースに接続しています。そして、CSVファイル(`exported_users.csv`)を開き、`users`テーブルから全てのデータをCSVに書き出しています。

応用例

条件付きデータインポート

# 特定の条件を満たすデータだけをインポートする例
with open('users.csv', 'r') as f:
    reader = csv.reader(f)
    for row in reader:
        if int(row[2]) > 20:  # ageが20より大きい場合のみインポート
            c.execute("INSERT INTO users (id, name, age) VALUES (?, ?, ?)", (row[0], row[1], row[2]))

特定のカラムだけエクスポート

# 特定のカラムだけをエクスポートする例
with open('exported_names.csv', 'w') as f:
    writer = csv.writer(f)
    for row in c.execute('SELECT name FROM users'):
        writer.writerow(row)

まとめ

この記事では、Pythonを使ったSQLiteでのデータインポートとエクスポートについて解説しました。基本的な操作から応用例まで、実用的な情報を提供することで、より効率的なデータハンドリングが可能になるでしょう。

コメント

コメントする

目次