お試し 技術

Pythonでデータベースにアクセスしてみる(MySQL編)

これまでC#やPowerShellではSQLにアクセスの仕方を紹介してきましたが、今回はPythonでの方法となります
今回はPytonでMySQLのテーブル作成やテーブルに対してのデータ登録となるのでMySQLの設定等は省略しています
また、本記事では『mysql-connector-python』というパッケージを使用しての方法となります

名前バージョン
Python3.12
mysql-connector-python9.1.0

データベース作成

基本的には普通にSQLコマンドを実行して作成する感じとなっています

import mysql.connector

host = "localhost or IPアドレス"
mysql_user = "MySQLアクセスユーザー名"
mysql_user_password = "MySQLアクセスユーザーのパスワード"
mysql_database = "データベース名" 

# MySQLへ接続
mydb = mysql.connector.connect(
    host=host,
    user=mysql_user,
    password=mysql_user_password
 )

# カーソルオブジェクトの作成
cursor = mydb.cursor()

# 新しいデータベースの作成
cursor.execute("CREATE DATABASE" + mysql_database)

mydb.close()

上記を実行するとデータベースが作成されています(今回はデータベース名を『TestDB』としています)

テーブルの作成

先ほど作成したデータベース上に今度はテーブルを作成していきます

import mysql.connector

host = "localhost or IPアドレス"
mysql_user = "MySQLアクセスユーザー名"
mysql_user_password = "MySQLアクセスユーザーのパスワード"
mysql_database = "データベース名" 
mysql_table = "テーブル名"

# MySQLへ接続(対象データベース追加)
mydb = mysql.connector.connect(
    host=host,
    user=mysql_user,
    password=mysql_user_password,
    database=mysql_database
)

# カーソルオブジェクトの作成
cursor = mydb.cursor()

# 新しいテーブルの作成
cursor.execute("CREATE TABLE " + mysql_table + " (name VARCHAR(255), age TINYINT UNSIGNED)")

mydb.close()

上記を実行すると対象のデータベース上にテーブルが作成されています(今回はテーブル名を『TestTable』としています)

テーブルにデータを登録する

先ほど作成したテーブルに今度は実際にデータを登録してみます

import mysql.connector

host = "localhost or IPアドレス"
mysql_user = "MySQLアクセスユーザー名"
mysql_user_password = "MySQLアクセスユーザーのパスワード"
mysql_database = "データベース名" 
mysql_table = "テーブル名"

# MySQLへ接続
mydb = mysql.connector.connect(
    host=host,
    user=mysql_user,
    password=mysql_user_password,
    database=mysql_database
)

# カーソルオブジェクトの作成
cursor = mydb.cursor()

sql = "INSERT INTO " + mysql_table + " (name, age) VALUES (%s, %s)"

# 1件だけの場合
val = ("ナストン", "21")
cursor.execute(sql, val)

# MySQLへコミット(データ反映)
mydb.commit()

print(cursor.rowcount, "record inserted.")

# 2件以上の場合
val = [    
    ("ナストン3", "23"),
    ("ナストン4", "23"),
    ("ナストン5", "23")
]
# executemanyを使用
cursor.executemany(sql, val)

# MySQLへコミット(データ反映)
mydb.commit()

print(cursor.rowcount, "record inserted.")

mydb.close()

上記を実行し、実際にMySQLを見てみるとデータが登録されていることが確認できました

テーブルからデータを取得する

最後は登録したデータを取得しようと思います

import mysql.connector

host = "localhost or IPアドレス"
mysql_user = "MySQLアクセスユーザー名"
mysql_user_password = "MySQLアクセスユーザーのパスワード"
mysql_database = "データベース名" 
mysql_table = "テーブル名"

# MySQLへ接続
mydb = mysql.connector.connect(
    host=host,
    user=mysql_user,
    password=mysql_user_password,
    database=mysql_database
)

# カーソルオブジェクトの作成
cursor = mydb.cursor()

# 対象テーブルからデータ取得
cursor.execute("SELECT * FROM " + mysql_table)

# 取得したすべてのデータを格納
result = cursor.fetchall()

for row in result:
    print(row)

mydb.close()

上記を実行すると以下のように登録されているデータを取得できました

最後に

これでPytonからMySQLへの操作ができるようになりました
ただ、基本的にSQLコマンドを渡して実行してもらう形となっているのである程度の知識が必要となりそうです

会社紹介

私が所属しているアドバンスド・ソリューション株式会社(以下、ADS)は一緒に働く仲間を募集しています

会社概要
「技術」×「知恵」=顧客課題の解決・新しい価値の創造

この方程式の実現はADSが大切にしている考えで、技術を磨き続けるgeekさと、顧客を思うloveがあってこそ実現できる世界観だと思っています
この『love & geek』の精神さえあれば、得意不得意はno problem!
技術はピカイチだけど顧客折衝はちょっと苦手。OKです。技術はまだ未熟だけど顧客と知恵を出し合って要件定義するのは大好き。OKです
凸凹な社員の集まり、色んなカラーや柄の個性が集まっているからこそ、常に新しいソリューションが生まれています

ミッション
私たちは、テクノロジーを活用し、業務や事業の生産性向上と企業進化を支援します

ホームページ
アドバンスド・ソリューション株式会社
アドバンスド・ソリューション株式会社

アドバンスド・ソリューションは主にMicrosoft製品を使用して、企業の生産性向上に取り組んでいます。要件定義から導入 ...

サイトへ移動

PR

-お試し, 技術
-, ,