MySQLをPythonから利用するMySQLdbモジュールの使い方について説明します。MySQLdbは標準ライブラリではないので、利用するにはあらかじめライブラリをインストールしておく必要があります。
まず、パッケージ管理システムのpipを使ってMySQL-Pythonをインストールします。
1 |
$ pip install MySQL-Python |
※pipがインストールされていない場合はこちらの記事を参考にしてください。
レコードの挿入
以下のプログラムはレコードを挿入するプログラムです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
# -*- coding: utf-8 -*- import MySQLdb # DBに接続しカーソルを取得する connect = MySQLdb.connect(host='localhost', port=3306, user='test', passwd='pass' , user='testuser', db='sample', charset='utf8') cursor = connnect.cursor() #レコードの挿入 sql = "insert into fruits values('apple', '100yen')" cursor.execute(sql) # 1つ目のレコードを挿入 sql = "insert into fruits values('orange', '150yen')" cursor.execute(sql) # 2つ目のレコードを挿入 connect.commit() # コミットする cursor.close() connect.close() # データベースオジェクトを閉じる |
はじめにMyqSQL.connect()でデータベースに接続します。引数には、ホスト名、ポート番号、ユーザー名、パスワード、接続するデータベース、文字コードを渡しています。不要な引数は省略できます。corsor()でカーソルを取得し、execute()メソッドの引数にはSQL文を渡して実行しています。insert文を指定することで、レコードの挿入を行います。最後にcommit()でコミットを行い、データベースを閉じます。
※MyqSQL.connect()で指定できるオプションはMySQLdb User's Guideが参考になります。
レコードの参照
次のプログラムは、上記で挿入したレコードを参照するプログラムです。SQL文のselect文をexecute()メソッドの引数として渡します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
# -*- coding: utf-8 -*- import MySQLdb # DBに接続しカーソルを取得する connect = MySQLdb.connect(host='localhost', port=3306, user='test', passwd='pass' , user='testuser', db='sample', charset='utf8') cursor = connect.cursor() sql = "select * from fruits" cursor.execute(sql) # select文を実行 for row in cursor: print row[0], row[1] cursor.close() connect.close() |
上のプログラムの実行結果は以下のようになります。
1 2 |
apple 100yen orange 150yen |
SQL文を変更すれば、データベースの更新や削除も実行することができます。