前回に引き続き、今回はSQLに対してPytonでテーブル作成やテーブルに対してのデータ登録します
今回もSQLの設定等は省略しています。また、本記事では『pyodbc』というパッケージを使用しての方法となります
名前 | バージョン |
---|---|
Python | 3.12 |
pyodbc | 5.2.0 |
-
-
Pythonでデータベースにアクセスしてみる(MySQL編) - ナストンのまとめ
これまでC#やPowerShellではSQLにアクセスの仕方を紹介してきましたが、今回はPythonでの方法となります今 ...
続きを読む
テーブル作成
基本的には普通にSQLコマンドを実行して作成する感じとなっています
import pyodbc
host = "localhost or IPアドレス"
sql_database = "データベース名"
sql_user = "SQLアクセスユーザー名"
sql_user_password = "SQLアクセスユーザーのパスワード"
conn = pyodbc.connect('DRIVER={SQL Server};SERVER='+host+';DATABASE='+sql_database+';UID='+sql_user+';PWD='+sql_user_password)
cursor = conn.cursor()
cursor.execute("CREATE TABLE " + sql_table + " (name VARCHAR(255) PRIMARY KEY, age INT);")
conn.commit()
conn.close()
上記を実行すると対象のデータベース上にテーブルが作成されています(今回はテーブル名を『TestTable』としています)

テーブルにデータを登録する
先ほど作成したテーブルに今度は実際にデータを登録してみます
import pyodbc
host = "localhost or IPアドレス"
sql_database = "データベース名"
sql_user = "SQLアクセスユーザー名"
sql_user_password = "SQLアクセスユーザーのパスワード"
conn = pyodbc.connect('DRIVER={SQL Server};SERVER='+host+';DATABASE='+sql_database+';UID='+sql_user+';PWD='+sql_user_password)
cursor = conn.cursor()
sql = "INSERT INTO " + sql_table + " (name, age) VALUES (?, ?)"
# 1件だけの場合
val = ("ナストン", "21")
cursor.execute(sql, val)
# SQLへコミット(データ反映)
conn.commit()
# 2件以上の場合
val = [
("ナストン3", "23"),
("ナストン4", "23"),
("ナストン5", "23")
]
# executemanyを使用
cursor.executemany(sql, val)
# SQLへコミット(データ反映)
conn.commit()
conn.close()
上記を実行し、実際にSQLを見てみるとデータが登録されていることが確認できました
また、MySQLの時と違いパラメータを渡す際は?(半角ハテナ)にする必要があり要注意となります

テーブルからデータを取得する
最後は登録したデータを取得しようと思います
import pyodbc
host = "localhost or IPアドレス"
sql_database = "データベース名"
sql_user = "SQLアクセスユーザー名"
sql_user_password = "SQLアクセスユーザーのパスワード"
conn = pyodbc.connect('DRIVER={SQL Server};SERVER='+host+';DATABASE='+sql_database+';UID='+sql_user+';PWD='+sql_user_password)
cursor = conn.cursor()
# 対象テーブルからデータ取得
cursor.execute("SELECT * FROM " + sql_table)
# 取得したすべてのデータを格納
result = cursor.fetchall()
for row in result:
print(row)
conn.close()
上記を実行すると以下のように登録されているデータを取得できました
こちらはMySQLとあまり違いがなく実行することができました

最後に
これでPytonからSQLへの操作ができるようになりました
ただ、基本的にSQLコマンドを渡して実行してもらう形となっているのである程度の知識が必要となりそうです
会社紹介
私が所属しているアドバンスド・ソリューション株式会社(以下、ADS)は一緒に働く仲間を募集しています
会社概要
「技術」×「知恵」=顧客課題の解決・新しい価値の創造
この方程式の実現はADSが大切にしている考えで、技術を磨き続けるgeekさと、顧客を思うloveがあってこそ実現できる世界観だと思っています
この『love & geek』の精神さえあれば、得意不得意はno problem!
技術はピカイチだけど顧客折衝はちょっと苦手。OKです。技術はまだ未熟だけど顧客と知恵を出し合って要件定義するのは大好き。OKです
凸凹な社員の集まり、色んなカラーや柄の個性が集まっているからこそ、常に新しいソリューションが生まれています
ミッション
私たちは、テクノロジーを活用し、業務や事業の生産性向上と企業進化を支援します
-
-
アドバンスド・ソリューション株式会社
アドバンスド・ソリューションは主にMicrosoft製品を使用して、企業の生産性向上に取り組んでいます。要件定義から導入 ...
サイトへ移動