この記事では『達人に学ぶSQL徹底指南書』を読んだ感想を書きます。
本書はDBエンジニアとして有名なニックさんが書かれた本であり、多くの方がSQL学習に推奨している名著です。
筆者はSQLは結合を使いこなせるくらいの初心者であり、高度なテクニックを身に付けたいと思い『達人に学ぶSQL徹底指南書』を手に取りました。
- どんな人におススメの書籍なのか
- どんなテクニックが身につくのか
- 特徴的なポイント
どんな人におススメ?
こんな人におススメです。
- SQL初心者を卒業したい人
- SQLの処理を効率化するテクニックを身に付けたい人
- モダンなSQLの書き方を学びたい人
- 「SQLとは何か」を詳しく知りたい人
本書のレベルは中級です。SQLの基礎を学習した方がステップアップのために読むのにちょうどいいと思います。
良かった点

テクニックの宝庫
本書を読んで以下のテクニックを身に付けることができました。
- CASE式で多彩な条件分岐を表現する
- CASE式で今まで複数書いていたSQLを一つにまとめる
- ウィンドウ関数によってコンパクトなSQLで行間比較を行う
- 外部結合で様々な集合パターンを表にする
- 自己結合でデータの重複チェックや組み合わせを表現する
上記のテクニックはほんの一部であり、ほかにもEXIST文やHAVING文などのテクニックも非常に参考になりました。
筆者は特にCASE式の解説が非常に勉強になりました。CASE文がかなり便利で、業務でも多用しています。
CASE式の活用は非常に勉強になりました!業務でも多用しています。
演習問題が学習の助けになる
本書には学習したテクニックをアウトプットするための演習問題が各章末についています。
1章を学習し終えるごとに問題を解くことができるので、学習の助けになりました。解説も、複数の解答パターンが載っていたりと非常に丁寧で分かりやすかったです。
私はPostgresSQLを実行できる環境をPCに用意していたので、サンプルデータをダウンロードしてSQLを書いていました。
SQLという言語の深い理解を得られる
SQLに対して
データを扱う便利な言語だよね!
ということくらいにしか考えていないのが普通ではないでしょうか。(筆者もそうでした)
しかし、本書を読むことで
- NULLの扱い方など、手続きが多言語と一線を画しているのはなぜか?
- なぜ少し処理を高度化しようとすると、やけに難しい構文になってしまうのか?
などなどSQLという言語自体の理解を深めることができます。
「SQLは使い方だけ覚えられればいい」という方はあまり興味がないかもしれませんが、これらを学ぶと思いのほかSQLを書くことが楽しくなります!
ただの技術本と思うなかれ

SQLテクニックの解説だけが載っていると思っている方は注意が必要です。本書は3部構成になっており、2部はすべてSQLという言語のバックグラウンドの解説になっています。
例えば以下のようなトピックです。
- RDB近現代史
- なぜ”関係モデル”という名前なの?
- なぜRDBにはポインタがないのか?
導入部分では以下のように書かれています。
SQLの原理となっている仕組みや、この言語を作った人が何を考えて現在のような形にしたのか、というバックグラウンドを掘り起こして伝えることを目指しています。
『達人に学ぶSQL徹底指南書』より引用
SQLにあまり詳しくない人でも理解できるように丁寧に書かれているので、筆者は楽しんで読めましたが、「SQLのバックグラウンドなんかどうでもよくて、ただテクニックを知りたい」という方には不要に感じてしまうかもしれません。
まとめ
この記事では『達人に学ぶSQL徹底指南書』を読んだ感想を書きました。
「SQL初心者を卒業したい!」という方は読むことをぜひおすすめします。多くのテクニックを手に入れることができます!
SQLという言語自体の解説部分も多くあり、興味ない方もいると思いますが、読んでみると意外と面白いです。
SQLを学習している方にはぜひ読んでいただきたい1冊です。