【Python】MySQLに接続してデータベースを操作する方法

Pythonを使ってMySQLデータベースに接続し、データの取得や挿入を行う方法について解説します。本記事では、mysql-connector-pythonライブラリを使用した基本的な操作方法をステップごとに紹介します。

必要なライブラリのインストール

まず、PythonからMySQLに接続するためのライブラリをインストールする必要があります。ここでは、公式のmysql-connector-pythonを使用します。以下のコマンドを実行してインストールしてください。

pip install mysql-connector-python

MySQLへの接続方法

次に、PythonスクリプトからMySQLデータベースに接続する方法を説明します。以下のコードを使用して、指定したホスト、ユーザー名、パスワード、データベースに接続します。

import mysql.connector

# MySQLデータベースに接続
conn = mysql.connector.connect(
    host="localhost",   # データベースのホスト名
    user="yourusername", # MySQLのユーザー名
    password="yourpassword", # MySQLのパスワード
    database="yourdatabase"  # 使用するデータベース名
)

# 接続が成功したかどうかを確認
if conn.is_connected():
    print("MySQLに接続成功!")

SQLクエリの実行

接続が確立されたら、SQLクエリを実行してデータを操作します。ここでは、データの取得と挿入の例を紹介します。

データの取得

テーブルからデータを取得するには、以下のコードを使用します。

# カーソルを作成
cursor = conn.cursor()

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

# 結果を取得
rows = cursor.fetchall()

# 取得したデータを表示
for row in rows:
    print(row)

# カーソルと接続を閉じる
cursor.close()
conn.close()

データの挿入

テーブルにデータを挿入する場合は、以下のコードを参考にしてください。

# カーソルを作成
cursor = conn.cursor()

# データの挿入
sql = "INSERT INTO yourtable (column1, column2) VALUES (%s, %s)"
values = ("value1", "value2")
cursor.execute(sql, values)

# 変更をデータベースに反映
conn.commit()

print(cursor.rowcount, "件のレコードが挿入されました。")

# カーソルと接続を閉じる
cursor.close()
conn.close()

エラーハンドリングの実装

データベース接続やクエリ実行中にエラーが発生することがあります。try-exceptブロックを使用してエラーハンドリングを行い、予期しないエラーに対処します。

try:
    conn = mysql.connector.connect(
        host="localhost",
        user="yourusername",
        password="yourpassword",
        database="yourdatabase"
    )

    if conn.is_connected():
        cursor = conn.cursor()
        cursor.execute("SELECT * FROM yourtable")
        rows = cursor.fetchall()

        for row in rows:
            print(row)

except mysql.connector.Error as err:
    print(f"エラーが発生しました: {err}")

finally:
    if conn.is_connected():
        cursor.close()
        conn.close()

まとめ

本記事では、Pythonを使用してMySQLに接続し、データベースを操作する基本的な方法について解説しました。ライブラリのインストールから、データの取得・挿入、エラーハンドリングまでの手順を示しました。これにより、PythonからMySQLを効率的に操作するスキルを身につけることができるでしょう。