2017/12/16ひしぶりにしっかりとSQLを何本も書く機会があったので、せっかくなので積読となっていた「達人に学ぶSQL徹底指南書」を読んでみました。SQLについても(?)完全に独学&我流でやってきていたので、何気にちゃんとDBとかSQLの技術書を読むのはじめてでしたが、思っていた以上にこの本に書かれていることを色々な方から日々ご指摘頂いていたり、自分でも意識していたこともありスラスラと読み進めることができました。どちらかと言えば、技術書というカテゴリよりもSQLを題材とした読み物といったほうがわかりやすいかもしれません。現場でゴリゴリ書いているけど実は勉強したことない人そろそろちゃんとSQLを勉強したい人などなど。要するに初級者向けの参考書では物足りないけどまだ上級者向けのは厳しい......という、とりあず中級者にステップアップしたい人向けの本です。指南書といったところでしょうか。ちなみに、こちらのページをよく読ませて頂いていたので本書を購入前から著者のミック氏のことは知っていました。(DB関連では有名ですからね)SQLのチューニングに関して大変参考になることばかりなので、興味ある方は合わせて読んで見ることをおすすめします。リレーショナル・データベースの世界CASE式ちゃんと使ってます?こんなやつですね。byして集計みたいなことをやっていました。by句だったりにも書けるんですね!まあ、本書の流れとしてはどうも僕の使い方は”ハック”的な方法で、本来の利用方法ではなかったみたいなのですが、逆に勉強になりました(笑)この辺の話もミック氏のHPで紹介されています。CASE式のススメ~省略~これは集計表を作るときに非常に便利な機能です。この技をスローガン的に表現するならば、WHERE句で条件分岐させるのは素人のやること。プロはSELECT句で分岐させるということです。使いでのある技なので、多用してください。CASE式のススメ本書のいいところ各章の終わりに「演習問題」がついているところ内容がめちゃめちゃ深いところ凝っていて実用的なSQLが学べるところ指南書と謳っているだけあって、なんと演習問題までつけてくれています。したパズル感覚でチャレンジしてみると面白いと思います。僕はこれのために、自宅のPCにPostgresSQLをインストールしました。DWHを運用したりしていると、ときに複雑なSQLを組まなくてはいけなくなる場面もあります。後付でテーブルを追加したり、Viewを作ったりしているとやはりSQL的に無理がくるんですよね~。インデックス張ってない列同士をJoinしたりとか。そんなときに、本書で紹介されているようなチューニング方法は大変参考になると思います。ハックしすぎ(笑)SQL1つでどこまでできるのかと、色々凝りまくってます。それはそれで面白いのですが、正直に実用的にはどうなんでしょうね(笑)周りのエンジニアがみんなSQLバリバリな人なら問題ないのかもしれませんが、僕が参加するようなプロジェクトや、僕のチームでやったらひかれそうです。チームのレベルアップとか考えたらいいのかもしれませんが、やはり色んな壁が......。スマートなSQLさらっと書いてみたいなぁ。まとめめちゃめちゃおすすめです。DB界隈で有名なミック氏によるSQL解説本であると同時に、SQLの楽しさも学べる技術書だと思います。そもそも、DBとを「論理」「集合」などの数学的なキーワードを用いて解説してくれていますので、入門系のSQL本とは少し色合いが違うところも新しい気づきがあるかもしれません。NULLの扱いについては必読です。徹底指南書」もあり、こちらについても僕は積読状態です。どこかのタイミングで読んでみようと思います。3ヶ月で合格した勉強法スギモト(@sugimotonote)です。今年で31歳になりました。新卒で独立系SIerに入社して気がつけば8年。ここ何年かは某大手メーカーに常駐して社内SEとしてレガシーな業務システムをモダン化しています。