【プログラミング】PythonにてMySQLのテーブル操作を行う

Python

今回は、PythonにてMySQLでのデータベース操作を行う方法を掲載します。

1.ライブラリのインストール

PythonでMySQLのテーブルを操作するためには、mysql-connector-pythonやPyMySQLなどのライブラリを使うのが一般的です。今回は、mysql-connector-pythonを使用して、MySQLのデータベースに接続し、テーブルの作成、データの挿入、データの取得、テーブルの削除を行うサンプルコードを紹介します。

pip install mysql-connector-python

まずは、上記のコマンドを入力し、「mysql-connector-python」のライブラリをインストールします。
普通にコマンドプロンプトから入力するだけでインストール可能です。

C:\Users\XXXXXX>pip install mysql-connector-python
Collecting mysql-connector-python
  Downloading mysql_connector_python-9.0.0-cp311-cp311-win_amd64.whl (14.3 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 14.3/14.3 MB 5.2 MB/s eta 0:00:00
Installing collected packages: mysql-connector-python
Successfully installed mysql-connector-python-9.0.0

[notice] A new release of pip is available: 23.1.2 -> 24.1.2
[notice] To update, run: python.exe -m pip install --upgrade pip

C:\Users\XXXXXX>

こんな感じの結果が表示されれば、インストール成功です。

2.PythonでMySQLのテーブル操作を行う(作成・挿入・抽出・削除)

以下が、PythonでMySQLのデータベースに接続し、テーブルの作成、データの挿入、データの取得、テーブルの削除といった基本的な操作を行うサンプルコードとなります。

import mysql.connector
from mysql.connector import Error

# データベース接続
def create_connection():
    """MySQLデータベースへの接続を作成します。"""
    try:
        connection = mysql.connector.connect(
            host='localhost',           # ホスト名
            user='root',                # ユーザー名
            password='XXXXXXXXXXX',     # パスワード
            database='test_schema'      # 使用するデータベース名
        )
        if connection.is_connected():
            print("MySQLデータベースに接続しました。")
            return connection
    except Error as e:
        print(f"エラーが発生しました: {e}")
        return None

# テーブル作成
def create_table(connection):
    """テーブルを作成します。"""
    try:
        cursor = connection.cursor()
        cursor.execute("""
            CREATE TABLE IF NOT EXISTS employees (
                id INT AUTO_INCREMENT PRIMARY KEY,
                name VARCHAR(100) NOT NULL,
                position VARCHAR(100),
                hire_date DATE
            )
        """)
        print("テーブルが作成されました。")
    except Error as e:
        print(f"テーブル作成中にエラーが発生しました: {e}")

# テーブルへのデータ挿入
def insert_data(connection):
    """データをテーブルに挿入します。"""
    try:
        cursor = connection.cursor()
        query = "INSERT INTO employees (name, position, hire_date) VALUES (%s, %s, %s)"
        values = [
            ('taro', 'Engineer', '2024-07-25'),
            ('hanako', 'Manager', '2023-01-20')
        ]
        cursor.executemany(query, values)
        connection.commit()
        print(f"{cursor.rowcount} 行のデータが挿入されました。")
    except Error as e:
        print(f"データ挿入中にエラーが発生しました: {e}")

# テーブル内のデータ抽出
def fetch_data(connection):
    """テーブルからデータを取得します。"""
    try:
        cursor = connection.cursor()
        cursor.execute("SELECT * FROM employees")
        rows = cursor.fetchall()
        for row in rows:
            print(row)
    except Error as e:
        print(f"データ取得中にエラーが発生しました: {e}")

# テーブルの削除
def drop_table(connection):
    """テーブルを削除します。"""
    try:
        cursor = connection.cursor()
        cursor.execute("DROP TABLE IF EXISTS employees")
        print("テーブルが削除されました。")
    except Error as e:
        print(f"テーブル削除中にエラーが発生しました: {e}")

def main():
    connection = create_connection()
    if connection:
        create_table(connection)
        insert_data(connection)
        fetch_data(connection)
        drop_table(connection)
        connection.close()

if __name__ == "__main__":
    main()

サンプルコードとなりますので、テーブル名やSQLといった部分は、適宜変更してください。
なお、実行すると、以下の形で結果が出力されます。

MySQLデータベースに接続しました。
テーブルが作成されました。
2 行のデータが挿入されました。
(1, 'taro', 'Engineer', datetime.date(2024, 7, 25))
(2, 'hanako', 'Manager', datetime.date(2023, 1, 20))
テーブルが削除されました。

まとめ

今回は、Pythonのライブラリである「mysql-connector-python」を利用してデータベース操作を行う方法を纏めました。
データベースへの接続から始まり、テーブル作成~データ挿入~データ抽出~テーブル削除といった基本的な操作方法を纏めていますので、是非参考にしてください。
(今回はここまで)

お読みいただき、有難うございました!

コメント

タイトルとURLをコピーしました