SQL(Structured Query Language)はデータベースの操作に広く用いられるプログラミング言語です。Pythonもまたデータ処理に非常に優れた言語であり、この二つを組み合わせることで効率的なデータ変換が可能になります。この記事では、Pythonを使用してSQLデータを変換する具体的な手法とスクリプトの例を解説します。
SQLとPythonの基礎
SQLとPythonのそれぞれがどのような目的で使用され、どのように連携するかを理解することが、データ変換作業の基礎となります。
SQLの基本
SQLはRDBMS(関係データベース管理システム)でデータを検索、挿入、更新、削除するための言語です。SQLは非常に高度な検索クエリを短いコードで書くことができ、大規模なデータベース操作に頻繁に用いられます。
Pythonの基本
Pythonはシンプルで読みやすい構文が特徴のプログラム言語です。データ分析、ウェブ開発、自動化、AIといった多岐に渡る用途で使用されます。
SQLとPythonの連携
Pythonは`pymysql`、`psycopg2`、`sqlite3`など、多くのデータベース接続ライブラリを有しており、SQLデータを直接操作することができます。
Pythonを使用したデータ変換の一例
Pythonを使用してSQLデータを変換する一例を以下に示します。ここでは、`sqlite3`ライブラリを用いています。
データベースとテーブルの作成
以下のスクリプトは、SQLiteデータベースとその中のテーブルを作成します。
import sqlite3
conn = sqlite3.connect('sample.db')
c = conn.cursor()
c.execute('CREATE TABLE employees(id INTEGER PRIMARY KEY, name TEXT, age INTEGER)')
conn.commit()
conn.close()
データの挿入と変換
次に、データを挿入し、年齢が30歳以上の従業員の名前を大文字に変換します。
conn = sqlite3.connect('sample.db')
c = conn.cursor()
# Insert data
c.execute("INSERT INTO employees VALUES (1, 'Alice', 25)")
c.execute("INSERT INTO employees VALUES (2, 'Bob', 35)")
conn.commit()
# Transform data
c.execute('SELECT * FROM employees WHERE age >= 30')
rows = c.fetchall()
for row in rows:
c.execute(f"UPDATE employees SET name = UPPER('{row[1]}') WHERE id = {row[0]}")
conn.commit()
conn.close()
データの確認
最後に、変換が正しく行われたか確認します。
conn = sqlite3.connect('sample.db')
c = conn.cursor()
c.execute('SELECT * FROM employees')
print(c.fetchall())
conn.close()
- 変換前のデータ: [(1, ‘Alice’, 25), (2, ‘Bob’, 35)]
- 変換後のデータ: [(1, ‘Alice’, 25), (2, ‘BOB’, 35)]
まとめ
PythonとSQLを連携させることで、効率的かつ柔軟なデータ変換が可能です。この記事では、SQLiteデータベースと`sqlite3`ライブラリを使用したデータ変換の基本的なスクリプトを紹介しました。これを参考に、より高度なデータ変換に挑戦してみてください。
コメント