今回はPythonから簡単にMySQLの操作が行えるPyMySQLの基本的な使い方についてメモしておきます。
バージョン等
- Python 3.6.0
前準備
PyMySQLのインストール
まず、PyMySQLをインストールします。
pipで簡単にインストールできます。
pip install PyMySQL
mysqlのテーブルの作成
以下のようなテーブルがあるDBがあると仮定しています。
PyMySQLのREADME.mdにあるテーブルと同じです。
CREATE TABLEusers
(id
int(11) NOT NULL AUTO_INCREMENT,password
varchar(255) COLLATE utf8_bin NOT NULL, PRIMARY KEY (id
) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin AUTO_INCREMENT=1 ;
PyMySQLの基本的な使い方
ドキュメントに書いてあるサンプルを使って基本的な書き方について紹介します。
データベースへの接続
では、まずデータベースに接続します。
import pymysql.cursors connection = pymysql.connect(host='*******', user='*******', password='*******', db='*******', charset='utf8', # 結果の受け取り方の指定。Dict形式で結果を受け取ることができる cursorclass=pymysql.cursors.DictCursor)
最後のcursorclassで結果をDict形式で取得することができます。
例えば、 cursorclass=pymysql.cursors.Cursor と設定するば,taple形式で結果を取得できます。
Insert
tableに新しいレコードをインサートします。
with connection.cursor() as cursor: sql = "INSERT INTOusers
(password
) VALUES (%s, %s)" cursor.execute(sql, ('webmaster@python.org', 'very-secret')) connection.commit()
上記のコードでは sql にsql文を書いて、それを cursor.execute によって実行しています。
このコードでインサートができました。
Select
では、インサートしたデータをSELECT文で取得してみます。
with connection.cursor() as cursor: sql = "SELECTid
,password
FROMusers
WHERE
先程インサートしたデータを取得できたと思います。
今回は1つレコードを取得しましたが、
もし、複数のレコードを取得したければ、
fetchall()などを使えば複数のレコードを取得できます。
終わりに
今回はPythonからMySQLを簡単に使えるPyMySQLを紹介しました。
PythonからMySQLを簡単に使えるので便利です。