今回はPythonでMySQLを操作する方法についてまとめます。
いくつかやり方はあるようですが、今回はmysql.connectorモジュールを使った方法について紹介します。
もくじ
PythonでMySQLに接続する方法
MySQLConnector for Pythonを使用します。
MySQLConnectorとは、MySQLの提供元であるOracleが開発しているコネクタです。
“Connector/PythonはPythonDB APIバージョン2.0に準拠するAPIを使用して、Pythonアプリケーションから、MySQLに接続するためのドライバサポートを提供します。追加のPythonモジュールまたはMySQLクライアントライブラリは必要ありません。”
MySQL5.6 リファレンスマニュアルより
とあるように、非常にシンプルに接続することができます。
どのくらい簡単かと言うと、このくらいです。
import mysql.connector #DBへの接続 db=mysql.connector.connect(host="DBのホスト", user="ユーザー名", password="パスワード") cursor=db.cursor(buffered=True) cursor.execute("USE データベース名") db.commit()
たったこれだけでMySQLとの接続が完了するのです。
簡単ですね。
上のコードで設定したcursorというのが、SQL操作の肝になります。
cursorが何かはよくわかってないです。
こちらの記事によると、cursorは概念、DBに対する複数操作を順次行うための仮想領域、なんて書かれてました。
どうも複数操作の際、トランザクション実行をするために必要な仕組みみたいです。
誰か詳しい人いたらぜひ教えてください。
PythonでMySQLを操作する方法
MySQLと接続して、cursorの用意まで完了したら、後はSQL文をぶちこむだけです。
sql = "insert into users(userId) values(\'" + userId + "\');" cursor.execute(sql) db.commit()
上のコードは、userというテーブルに新しくuserIdを挿入する処理を書いてます。
SQLを書いて、cursorにぶち込んで、コミット!
これでPythonによるSQL操作はバッチリです。
後は好きにSQLを書き換えてごりごり動かしていくといいと思います。
あ、DBの切断も忘れずに。
db.close()
まとめ
今回初めてSQLを勉強しつつPythonでDB操作にチャレンジしたわけですが、予想以上に手軽にできて驚きました。
DBってもっと複雑で難しいものだと思っていたのですが、SELECT,FROM,WHEREあたりの基本的な構文を勉強するだけでも結構普通に使えるのが良かったです。
もっと深く学べばデータ分析とかにも応用できそうなので、面白そうだなと思ってます。
SQLについては今後もまた勉強していこうと思います。