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