Make.

MySQLを操作する

Pocket

Pythonでライブラリを使用して、データベース(MySQL)を操作します。
Linux(RaspberryPi)上で、Pythonでデータベースにデータを追加したり、取得できるようにします。


ライブラリのインストール

PythonからMySQLを使えるようにするため、MySQL-pythonを使います。

sudo apt-get install python-pip
sudo pip install MySQL-python

エラーになる場合は、以下のパッケージが足りないことが多い為、追加でインストールします。

sudo apt-get install python-dev

EnvironmentError: mysql_config not foundのエラーが出た場合は、以下のパッケージもインストールします。

sudo apt-get install libmysqlclient-dev

データベースへの接続

PythonでMySQLのデータベースへ接続するには、以下のプログラムを記述します。

# -*- coding: utf-8 -*- 
 
import MySQLdb
 
if __name__ == "__main__":
 
    connector = MySQLdb.connect(host="localhost", db="データベース名", user="ユーザ名", passwd="パスワード", charset="utf8")
 
    connector.close()

データを追加する

データを取得するためには、cursor = connector.cursor()でカーソルを取得して、操作します。
カーソルからの操作は、SQLで行います。
以下では、insert文で、データを1つづつ追加しています。

# -*- coding: utf-8 -*- 
 
import MySQLdb
 
if __name__ == "__main__":
 
    connector = MySQLdb.connect(host="localhost", db="データベース名", user="ユーザ名", passwd="パスワード", charset="utf8")
    cursor = connector.cursor()
     
    sql = u"insert into test_table values(‘id1’,'value1')"
    cursor.execute(sql)
 
    sql = u"insert into test_table values(‘id2’,’value2')"
    cursor.execute(sql)
 
    connector.commit()
     
    cursor.close()
    connector.close()

データを取得する

Pythonでデータベースからデータを取得します。
select文でデータをすべて取得し、fetcallで全データを表示するサンプルプログラムです。
select文での取得条件whereを変更すれば、条件に当てはまるデータのみを取得できます。

# -*- coding: utf-8 -*- 
 
import MySQLdb
 
if __name__ == "__main__":
 
    connector = MySQLdb.connect(host="localhost", db="データベース名", user="ユーザ名", passwd="パスワード", charset="utf8")
    cursor = connector.cursor()
     
    sql = "select * from テーブル名"
    cursor.execute(sql)
    records = cursor.fetchall()
    for record in records:
        print record
    cursor.close()
    connector.close()
Pocket