Python で MySQL - データの挿入 (insert)

ここでは Python で MySQL のテーブルにデータの挿入 (insert) する方法についてご説明します。

MySQL Connector をインストールしていない方は、「Python で MySQL に接続する」をご参考に、MySQL に接続できる状態にしておいてください。

Python で MySQL のテーブルにデータの挿入 (insert) する

Python で MySQL Connector を使って、テーブルにレコードを挿入してみましょう。

Python で MySQL - テーブルの作成」で生成した test データベースの student テーブルにレコードを挿入します。

import mysql.connector

cnx = None

try:
    cnx = mysql.connector.connect(
        user='root',  # ユーザー名
        password='password',  # パスワード
        host='localhost',  # ホスト名(IPアドレス)
        database='test'  # データベース名
    )

    cursor = cnx.cursor()

    sql = ('''
    INSERT INTO student 
        (first_name, last_name, birthday, gender)
    VALUES 
        (%s, %s, %s, %s)
    ''')

    data = [
        ('Shota', 'Sato', '2001-03-12', 'M'),
        ('Hiroki', 'Takagi', '2000-04-05', 'M'),
        ('Yuka', 'Kimura', '2001-03-27', 'F')
    ]

    cursor.executemany(sql, data)
    cnx.commit()

    print(f"{cursor.rowcount} records inserted.")

    cursor.close()

except Exception as e:
    print(f"Error Occurred: {e}")

finally:
    if cnx is not None and cnx.is_connected():
        cnx.close()

上のコードを実行すると、student テーブルレコードが挿入され、挿入されたレコードの数が次のように出力されます。

3 records inserted.

まず、1 行目で mysql.connector をインポートして、6 ~ 11 行目で、connect() メソッドに、MySQL のユーザー名、パスワード、ホスト名、データベース名を渡してコネクションを生成しています。

13 行目で cursor を生成し、15 ~ 20 行目で student テーブルにデータを挿入する INSERT INTO のクエリーを定義しています。

22 ~ 26 行目で挿入したいデータを定義し、28 行目の cursor.executemany(sql, data) で複数行を一度に挿入しています。

29 行目で commit() して、データの挿入を確定しています。MySQL データベースをデフォルトのまま使っている場合は、INSERT、UPDATE、DELETE の後に commit しないと、データが変更されません。

cursor の rowcount は直前に実行した SELECT 文のレコード数や、INSERT や UPDATE 文などで変更されたレコード数が取得できるプロパティです。 31 行目でそれを使って挿入されたレコードの数を print しています。


以上、Python で MySQLのテーブルにデータの挿入 (insert) する方法についてご説明しました。

© 2024 やさしい Python 入門