Python で MySQL - テーブルの作成

ここでは Python で MySQL のテーブルを作成する方法についてご説明します。

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

Python で MySQL テーブルを作成する

Python で MySQL Connector を使って、新規のテーブルを作成してみましょう。

test という名前のデータベースに student というテーブルを生成します。

import mysql.connector

cnx = None

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

    cursor = cnx.cursor()

    # cursor.execute("DROP TABLE IF EXISTS student")

    sql = '''
    CREATE TABLE student (
       student_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
       first_name VARCHAR(50) NULL,
       last_name VARCHAR(50) NULL,
       birthday DATE NULL,
       gender ENUM('F','M')
    )'''
    cursor.execute(sql)

    cursor.execute("SHOW TABLES")
    print(cursor.fetchall())

    cursor.close()

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

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

上のコードを実行すると、test データベースの全てのテーブル名が出力され、student テーブルが作成されたことが確認できます。

[('student',)]

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

13 行目で cursor を生成し、17 ~ 24 行目で CREATE TABLE のクエリーを定義し、25 行目でそれを実行して、student テーブルを生成しています。

27 行目で確認のために、テーブルの一覧を取得する SHOW TABLES を実行し、その結果を cursor.fetchall() で全て print しています。


作成しようとしているテーブルと同じ名前のテーブルが既に存在する時は「 Table 'student' already exists 」のようなエラーになります。

CREATE TABLE を実行する前に、student テーブルが既に存在する場合に削除したい時は DROP TABLE IF EXISTS student というクエリーを実行することで、今ある student テーブルを削除することができます。


以上、Python で MySQL のテーブルを作成する方法についてご説明しました。

© 2024 やさしい Python 入門