PythonでMySQLを操作する方法:MySQLdb

MySQLをPythonから利用するMySQLdbモジュールの使い方について説明します。MySQLdbは標準ライブラリではないので、利用するにはあらかじめライブラリをインストールしておく必要があります。

まず、パッケージ管理システムのpipを使ってMySQL-Pythonをインストールします。

$ pip install MySQL-Python

※pipがインストールされていない場合はこちらの記事を参考にしてください。

レコードの挿入

以下のプログラムはレコードを挿入するプログラムです。

# -*- 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()メソッドの引数として渡します。

# -*- 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()

上のプログラムの実行結果は以下のようになります。

apple 100yen
orange 150yen

SQL文を変更すれば、データベースの更新や削除も実行することができます。