[読書] ぐんぐん実力がつく! 逆算式SQL教科書

小飼弾氏の書評ブログを読んで、即購入。それから6年近くたった今、仕事でSQLの知識が足りないと実感するできごとがあったので、ようやく読んでみることにしました。

あー、長い積読でした。

ぐんぐん実力がつく! 逆算式SQL教科書
ぐんぐん実力がつく! 逆算式SQL教科書

目次

  • 01章 逆算してみませんか?
  • 02章 最も基本的なSELECT文
  • 03章 次に重要なSELECT文
  • 04章 1ランク上のSELECT文
  • 05章 覚えておいて損はないSELECT文
  • 06章 VIEWを使う
  • 07章 データの追加・更新・削除
  • 08章 テーブルとインデックス
  • 09章 トランザクション
  • 10章 ストアードプロシージャとストアードファンクション
  • 11章 応用編
  • 12章 応用

感想

僕は普段、Webアプリケーション開発にRuby on Railsを使っています。アプリケーションがまだチュートリアルの範疇を出ない段階では、ActiveRecordがデータベースをうまく隠蔽してくれているので、あまりSQLを意識する機会はありません。が、Railsの「レール」から外れようとした途端に、Scopeを使ってSQLを書かないといけないような状況がでてきます。そんな時に、

  • 「『内部結合』と『外部結合』の違いはこう、、だよね?」
  • 「『副問い合わせ』とか『相関副問い合わせ』ってこれであってるよね?」

と不安に思うことがありました。理解はしているつもりなんだけど、アルバイトさんに質問された時にうまく答えられるかわからない。そんな風に思ったのが本書を読んだきっかけです。

目次からもわかるように、本書はかなりの部分をSELECT文、つまり「データベースから条件に一致したデータを読み込んで加工して表示する」ことについての解説に割いています。RailsみたいなWebアケーションフレームワークでSQLを書く必要が発生するのも大体はSELECT文なので、読む前の自分のニーズにはぴったりでした。ちなみに、扱っているデータベースはMySQLです。

さて、やみくもに複雑なSQLを書こうとした場合、正解のSQLにたどり着くために何時間もさまよい続ける、なんてこともあるかと思います。本書には、SQLを書く前に常に念頭において置きたいこととして、冒頭にこんなことが書いてありました。

3つの掟
・ゴールを明確にする
・どのように実現するか、そのために何が必要かを考える
・やってみる

SQLに限らず、こうやって分解して考えるのはとても大事。

本書のタイトルには「逆算式」という言葉が含まれていますが、まず「SQLで実現したいこと」が見出しにあって、次に日本語で「実現する方法と必要な情報」が整理され、最後に最終的な「SQL文」が書かれているような形式になっています。本書を読んでSQLを学ぶことで、自然と「3つの掟」に従う癖がつき、SQL文を考えるために無駄に何時間もハマったりすることはなくなるんじゃないでしょうか。

Webアプリケーション開発で誰もが通る道だけど、SQL自体をしっかり勉強したことがない人には絶対おすすめ。これ一冊読めば、SQLを自由自在に使うための基礎が身につきますよ。

それではー。