PythonでMySQLにデータを挿入する詳細ガイド

PythonでMySQLデータベースにデータを挿入する場面は頻繁にあります。本記事では、基本的なデータ挿入からエラーハンドリング、バッチ挿入まで、PythonでMySQLにデータを挿入する際の実用的なコード例とその詳細な解説を提供します。

目次

環境設定と前提条件

PythonとMySQLの両方がインストールされていることが前提です。また、MySQLサーバーが動作していること、PythonのMySQLドライバがインストールされていることも必要です。

PythonのMySQLドライバインストール

MySQLドライバは、PythonからMySQLにアクセスするためのライブラリです。`mysql-connector-python`はその一例です。

pip install mysql-connector-python

基本的なデータ挿入

PythonでMySQLにデータを挿入する基本的な手法について説明します。

サンプルコード

以下のコードは、`students`テーブルに新しいレコードを追加するものです。

import mysql.connector

# MySQLに接続
conn = mysql.connector.connect(host='localhost', user='root', password='password', database='school')

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

# SQL文を実行(データ挿入)
sql = "INSERT INTO students (name, age, grade) VALUES (%s, %s, %s)"
values = ("Taro", 20, "Sophomore")

# 日本語コメント:SQL文を実行
cursor.execute(sql, values)

# コミット(データベースに反映)
conn.commit()

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

コード解説

1. `mysql.connector`をインポートします。
2. `connect()`メソッドでMySQLに接続します。
3. `cursor()`メソッドでカーソルオブジェクトを作成します。
4. `execute()`メソッドでSQL文を実行します。
5. `commit()`メソッドで変更をデータベースに反映します。

応用例

基本的なデータ挿入をマスターしたら、次は応用例です。

バッチ挿入

複数のレコードを一度に挿入する場面もあります。以下はそのコード例です。

# SQL文とデータ
sql = "INSERT INTO students (name, age, grade) VALUES (%s, %s, %s)"
values = [
    ("Jiro", 21, "Junior"),
    ("Hanako", 19, "Freshman")
]

# 日本語コメント:複数のデータを一括挿入
cursor.executemany(sql, values)
conn.commit()

エラーハンドリング

エラーハンドリングを行うことで、安全なデータ挿入が可能です。

try:
    cursor.execute(sql, ("Taro", 20, "Sophomore"))
    conn.commit()
except mysql.connector.Error as err:
    print("Error: {}".format(err))
    conn.rollback()

まとめ

PythonでMySQLにデータを挿入する方法は多く、状況に応じて適切な手法を選ぶ必要があります。本記事では、基本的な挿入方法からエラーハンドリング、バッチ挿入までを網羅しました。これらの知識が、より効率的で安全なデータベース操作に役立つことを期待します。

コメント

コメントする

目次