Hello World.
LiSMOtechの久津間です。
弊社では週に1回〜2週に1回くらいの頻度で「標準化・研究開発」というなの勉強会を開催しておりまして、その中でRDBMSの講座をさせていただきました。
RDBMSの講座の中では、事前に用意したAWS RDSのMySQLに接続して実際にDBを扱ってみるセクションがありまして、そちらで折角作ったデータベースなのでpythonからも操作してみようと思いこの記事に至っています。
また、今回はRDSは既に作られていることを前提に進めます。
pythonのバージョン
Python 3.9.5
PythonからMySQLに接続するライブラリはいくつかあるようですが、この記事ではmysql-connerctorを使用したいと思います。
この他にもmysqlclientやPyMySQLなどが良く使われているライブラリがあります。
PythonではPEP249 (DB-API 2.0)で、DB接続やSQLの実行など仕様が定められており、どのライブラリを使用しても基本は同じメソッドで実行することができるようです。
ターミナルからpipコマンドで以下のとおりライブラリをインストールします。
pip install mysql-connector-python
以下のコマンドを例に実行してみます。
# rds_sample.py
import mysql.connector
# 作成するテーブル
table_name = 'employees'
# コネクションの作成
cox = mysql.connector.connect(
host='エンドポイント',
port='3306',
user='admin',
password='パスワード',
database='データベース名'
)
# コネクションの状態を出力
print(cox.is_connected())
cursor = cox.cursor()
try:
print("creating table {}".format(table_name))
cursor.execute(
"CREATE TABLE `employees` ("
" `emp_no` int(11) NOT NULL AUTO_INCREMENT,"
" `birth_date` date NOT NULL,"
" `first_name` varchar(14) NOT NULL,"
" `last_name` varchar(16) NOT NULL,"
" `gender` enum('M','F') NOT NULL,"
" `hire_date` date NOT NULL,"
" PRIMARY KEY (`emp_no`)"
") ENGINE=InnoDB"
)
except mysql.connector.Error as err:
print("Failed creating table: {}".format(err))
exit(1)
# コネクションを閉じる
cox.close()
コネクションの作成(cox = mysql.connector.connect
)ではホスト名、ポート番号、ユーザー名、パスワード、接続するデータベースなどを指定しています。
こちらは適宜ご自身で用意したDBの情報を参照の上設定してみてください。
また、この例では新たに”employees
”といったテーブルを作成しています。
作成に成功した場合は、creating table ~~といったメッセージがターミナルに表示されるはずです。
ターミナルからRDSに接続して確認した結果だと以下のテーブル情報が追加されていました。
今回の例ではテーブルの作成止まりでしたが、この他にもテーブルデータの参照や更新などの操作も可能です。
ご自身でお試しになってみてください。
NEXTGATE LiSMOtechでは中小企業を中心にブランディング・WEBマーケティングを活用したWEB戦略を提供しています。
企業課題・問題に関するご相談、WEBサイト制作やグラフィックデザイン制作のクリエイティブに関するご相談やご質問、お見積りなどお気軽にお問い合わせください。
平日10:00〜19:00
© NEXTGATE LiSMOtech All rights reserved