SQL初心者に贈る、自分のブラウザ閲覧履歴をSQLで見るためのセットアップ!

SQLを勉強するには手元で書いてみるのが第一だと思いますが、そもそもデータベースを用意するのが面倒ですよね。
実はGoogle Chromeなどのブラウザは、パソコン内部にSQLiteというDBを持っています!
これをSQLクライアントと繋げば自宅でもSQLの練習ができるってわけです!

f:id:hiroga_cc:20180801220245p:plain 以下、手順を解説します。

手順

  1. SQLクライアントの導入
  2. SQLiteのセットアップ
  3. 実際にSQLを発行

1. SQLクライアントの導入

なんでも大丈夫ですが、ここではDBeaverをオススメします。
dev.classmethod.jp

2. SQLiteのセットアップ

まずはSQLiteのパスを取得します。
(以下はGoogle Chromeの場合です。FirefoxSafariの場合はご自分で調べてください。)

History(拡張子なし)というファイルがDBです。私の場合は以下のパスにありました。
/Users/hiroaki/Library/Application Support/Google/Chrome/Default/History

次にコネクションを設定して、セットアップは完了です。
f:id:hiroga_cc:20180801215508p:plain

※注意
以下のような表示が出たら、Google Chromeを終了してみるといいかもです。
f:id:hiroga_cc:20180801215650p:plain

3. 実際にSQLを発行

SQLを発行する前に、テーブルがたくさんあるので中身を見てみるのがいいかも知れませんね。 f:id:hiroga_cc:20180801215911p:plain

SQLを自前で発行しなくても、右クリックして、"Read data in SQL console"で表示できます。
f:id:hiroga_cc:20180801220135p:plain

テーブルの中身がだいたい分かったら、好きなSQLを打ってみるのがよいと思います。
冒頭のSQLはこんな感じでした。

SELECT kst.term, datetime(v.visit_time/1000000-11644473600,'unixepoch','localtime') as visit_time
FROM keyword_search_terms as kst
inner join visits as v
on kst.url_id = v.url
order by v.visit_time DESC;

まとめ

こういう身近なところから勉強できたほうが楽しいですよね。
他にも教材ややり方ご存知の方いらっしゃいましたら、ぜひ教えてください。