MySQLでもjupyter notebook を使いたい

DBにクエリを叩いて調査していて、SQLでもJypyter notebookやR notebook のようなUIの環境がほしい!と思った。

jupyterとpython(pymysql, pandas)でやったらやりたいことができた。

jupyterを起動して、セルに以下のようなコードを書く。

import pymysql
conn = pymysql.connect(host=host,user=user,password=password,db=db, charset='utf8')

import pandas as pd
pd.read_sql_query("select * from hoge where id=123", conn)
# 下に結果のテーブルが表示される

何が嬉しいかというと、クエリ1を実行して何かを確認して、クエリ2でまた何かを確認して、クエリ1や2で取得した情報をクエリ3で使って……というようなことを1画面でできる。ノートを取りながらクエリを実行するよりも思考の流れに近い形で行うことができる。

さらには Python なので old_id = "hoge", new_id = "foobar" のように変数にすればどのIDがどういう意味だっけということを覚えておく必要がなくなる。

後から見直すことがあってもわかりやすい。markdownなどのフォーマとでエクスポートすることもできる。