Pythonを使ったSQLデータ変換の実用ガイド

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`ライブラリを使用したデータ変換の基本的なスクリプトを紹介しました。これを参考に、より高度なデータ変換に挑戦してみてください。

コメント

コメントする

目次