PythonでMySQLデータをエクスポート・インポートする完全ガイド

この記事では、Pythonを用いてMySQLデータベースのエクスポートとインポートを行う方法について詳しく解説します。具体的なコード例とその解説、応用例を含めています。

目次

はじめに

PythonとMySQLはデータ処理の領域で頻繁に用いられます。しかし、データのエクスポートやインポートは初心者にとっては難しく感じるかもしれません。この記事では、その手順を簡単かつ詳しく解説します。

必要なライブラリと環境

MySQLコネクター

PythonからMySQLにアクセスするためには、MySQL Connectorというライブラリが必要です。

# MySQL Connectorのインストール
pip install mysql-connector-python

基本的なエクスポート

データベースに接続する

まずはMySQLデータベースにPythonで接続します。

import mysql.connector

# データベース接続設定
config = {
  'user': 'username',
  'password': 'password',
  'host': 'localhost',
  'database': 'database_name'
}

# データベースに接続
conn = mysql.connector.connect(**config)

データをエクスポートする

接続したら、次にデータをエクスポートします。

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

# SQLクエリを実行
cursor.execute("SELECT * FROM table_name")

# データを取得
rows = cursor.fetchall()

# エクスポート処理(CSVファイルへの書き込みなど)
with open('exported_data.csv', 'w') as f:
    for row in rows:
        f.write(','.join([str(elem) for elem in row]) + '\n')

基本的なインポート

CSVファイルからデータを読み込む

エクスポートと同様に、データをインポートする方法も見ていきましょう。

# インポート処理(CSVファイルからの読み込み)
with open('exported_data.csv', 'r') as f:
    csv_data = f.readlines()

# データをインサート
for line in csv_data:
    cursor.execute("INSERT INTO table_name (column1, column2, ...) VALUES (%s, %s, ...)", tuple(line.strip().split(',')))

# コミットして変更を保存
conn.commit()

応用例

バルクインサート

一度に多くのデータをインサートする方法です。

# バルクインサート用のデータを準備
bulk_data = [(val1, val2, ...), (val1, val2, ...), ...]

# バルクインサートを実行
cursor.executemany("INSERT INTO table_name (column1, column2, ...) VALUES (%s, %s, ...)", bulk_data)
conn.commit()

トランザクションの制御

トランザクションを制御することで、データの整合性を保ちます。

try:
    # 何らかのDB操作
    cursor.execute("SQL Query")

    # コミット
    conn.commit()
except:
    # エラーが発生した場合はロールバック
    conn.rollback()

まとめ

この記事ではPythonを用いてMySQLデータのエクスポートとインポートを行う基本的な方法から応用例までを解説しました。これを機に、PythonとMySQLを用いてより高度なデータ操作を行ってみてはいかがでしょうか。

コメント

コメントする

目次