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