はじめに
前回に引き続き、データtベースを扱います。今回は、直接操作するのではなく、PythonからMySQLを操作してみます。PythonからのMySQLの操作には、mysqlclientを利用します。まずはこれを導入するところから始めましょう。
Pythonからデータベースを操作する
まずは、mysqlclientの導入です。これはpipを使えば簡単ですね。コマンドプロンプトに次のように打ち込んでください。
pip install mysqlclient
次のように表示されれば、インストール完了です。
mysqlclientのインストールが完了したら、ライブラリをインポートして使っていきます。全体の流れとしては、次のようになります。
- データベースとの接続
- カーソルの作成
- カーソルからのSQL文の発行
順にみていきましょう。まずは接続です。次のようなオブジェクトを作ります。
# ライブラリのインポート
import MySQLdb
# データベースとの接続
conn=MySQLdb.connect(host='localhost',user='root',passwd='',db='testdb',charset='utf8')
passwdのところは、ご自身で設定したパスワードを記入してください。これでMySQLとPythonのコネクションができた状態となります。このあとは、このオブジェクトを操作していきます。
カーソルを作ります。
# カーソルを作る
cursor=conn.cursor()
cursor
はコネクションオブジェクトのcursor()メソッドを呼ぶことで作成します。上記のコードでMySQLからカーソルが取り出せているので、今後はこのカーソルからSQL文を発行することができます。
# SQLを動的に作成
sql="insert into testtable(name,area,english,math,japanese) values('%s','%s',%s,%s,%s)"%('石井','山梨県',80,50,60)
# 実行
cursor.execute(sql)
このときの戻り値は、次のようになります。
これは処理した結果を返しているのではなく、処理した行数を返しています。この状態では、まだ完全に処理は終わっていない。データベースと接続したオブジェクトに対して、insertやupdateなどの処理をおこなったあとにcommitという命令をすることで決定となる。
コミット (commit) とは、データベースにおいてトランザクションによる内容更新を恒久的なものとして確定することを指す。 一般にトランザクションの終了時にその更新を確定するという意味で「コミットする」などと使用する。 (引用元:Wikipedia)
そのあとに、コネクタをcloseすることで、この処理が完了します。
# コミット
conn.commit()
# close処理
conn.close()
これをMySQLで実際に確認してみましょう。
ちゃんと石井さんが追加されていますね。
まとめ
いかがでしょうか?今回はPythonからMySQLを操作してみました。まずは、データの追加を試してみました。基本的なところから確認したので、なんとなくイメージできたのではないでしょうか?次回は、PythonからMySQLの操作をするの2回目で、「データの抽出」をしてみましょう。
コメント