ISBN 9784798157825
達人に学ぶSQL徹底指南書 第2版 初級者で終わりたくないあなたへ
概要
SQLの設計思想と集合指向の発想を体系的に習得する
想定読者
SELECT / JOIN / GROUP BY は書けるものの、CASE式・ウィンドウ関数・EXISTS述語といった高度な機能を業務で十分に使いこなせていない中級のDBエンジニア・バックエンドエンジニア。脱初級を目指す方や「SQLとは何なのか」という原理から理解したい方に向いています。
こんな人には向いていない
- SELECT文やWHERE句の書き方から学びたいSQL初学者。本書は基本構文の解説書ではなく、基本が書ける人を次の段階へ引き上げる本です
- とにかく動くクエリのコピペ例集が欲しい方。本書は「なぜそう書くのか」という設計根拠の理解に重点を置いています
- すでにウィンドウ関数や集合指向の発想を実務で自在に駆使しているシニアエンジニアには、復習以上の発見は限られるかもしれません
読了後にできるようになること
- CASE式を使った条件付き集計・ピボット変換・複数列の同時更新を実務クエリに応用できる
- ウィンドウ関数で行間比較・ランキング・移動集計を手続き型ループなしに記述できる
- EXISTS述語と量化子の意味論を理解し、NOT INとの挙動の差異を設計根拠で説明できる
- 3値論理とNULLの振る舞いを正確に把握し、予期しないバグの原因を特定できる
- インデックスを意識したSQLチューニングの基本方針を自力で立てられる
- 集合・関係モデルの原理からSQLの設計意図を読み解き、チームの議論に活かせる
本書のキー概念(章解説)
- 第 1 章 第1部 魔法のSQL(CASE式・ウィンドウ関数・自己結合・EXISTS・HAVING句ほか) — 前半の主役。実務で頻出する高度機能を「正しい書き方・考え方」とともに徹底解説する実践パート
- 第 2 章 SQLを速くするぞ/SQLプログラミング作法 — 第1部終盤。チューニングの基本方針とコーディング作法をまとめ、現場で活きる形に落とし込む
- 第 3 章 第2部 リレーショナルデータベースの世界(RDB近現代史・関係モデル・宣言型への頭の切り替え・NULL論ほか) — 終盤の読み物パート。なぜこの構文がこう動くのかを理論と歴史から補完する。第19章「手続き型から宣言型・集合指向へ頭を切り替える7箇条」が思考法の核心
- 第 4 章 第3部 付録(演習問題の解答・参考文献) — 標準SQL準拠の演習解答。手元のRDBMSで動かして定着させる材料になる
ハイライト
- SQLの原理となっている仕組みや、この言語を作った人々が何を考えて現在のような形にしたのか、というバックグラウンドも掘り起こして伝えます。(単なる構文集ではなく設計思想まで遡るという本書の独自性が最も顕著な箇所)
- 第2版では、初版構成を生かしつつ、SQLの強力な機能ウインドウ関数を全面的に採用して多くのコードをリバイスしました。(10年ぶり改訂の核心がウィンドウ関数への全面刷新である点を示す)
編集メモ
2008年初版から版を重ねるSQL分野のロングセラーで、第2版は約357ページ。標準SQL準拠で主要RDBMSに対応し、脱初級の定番として長く参照され続けている
読む前に押さえておきたいこと
- SELECT / WHERE / GROUP BY / JOIN など基本的なSQLが実務で書けること
- 何らかのRDBMS(MySQL、PostgreSQL、Oracle等)を実際に使った開発・運用経験
- テーブル・主キー・外部キーといったリレーショナルモデルの基本用語を把握していること
学習のコツ
- 第1部は必ずしも順読みしなくてよい。自分が直近の業務でよく書くクエリ(集計ならHAVING句・ウィンドウ関数、条件分岐ならCASE式)に対応する章から入ると、実感を伴って定着する
- 第2部(RDB近現代史以降)はRDBの理論・歴史を扱う読み物パートで、第1部で「なぜこの構文がこう動くのか」と詰まったときの補完として機能する。最初に飛ばしても支障はない
- 演習問題は手元のPostgreSQL / MySQLで実際に動かすことが強く推奨される。本書は標準SQL準拠で書かれており、ほぼそのまま流用可能
- 第19章「手続き型から宣言型・集合指向へ頭を切り替える7箇条」はSQL思考法の核心。コードレビューや設計レビューで「なぜループでなく集合操作で書くべきか」を説明する際の共通言語になる
- 約357ページとSQL実践書としては読み切れる分量。週末に第1部を一気に通し、第2部を後日かけてじっくり読む二段構えが取りやすい
出版社による内容紹介
SQLを扱うエンジニア必携のロングセラー、10年ぶりの改訂! ーーSQLの正しい書き方・考え方が学べる本 開発者のためのWebマガジン「CodeZine」の人気連載を大幅加筆・修正して2008年に刊行、好評を博した『達人に学ぶSQL徹底指南書』の改訂・第2版です。 第2版では、初版構成を生かしつつ、SQLの強力な機能ウインドウ関数を全面的に採用して多くのコードをリバイスしました。全体的な解説の見直しや最新化も行ない、CASE式、ウィンドウ関数、外部結合、HAVING句、EXISTS述語など、SQLを扱うエンジニアに必要な「正しい書き方・考え方」「ビッグデータ時代に対応したモダンなSQL機能を駆使した書き方」を徹底解説しています。 標準SQL準拠のため、Oracle/SQL Server/DB2/PostgreSQL/MySQL等々の幅広いデータベースに対応しているほか、実際の開発現場でも活かしやすい実践的なコーディング事例も多数紹介しています。 チューニングテクニックやリレーショナルデータベースの歴史なども網羅。 SQLの原理となっている仕組みや、この言語を作った人々が何を考えて現在のような形にしたのか、というバックグラウンドも掘り起こして伝えます。 ・脱初級や、より高みを目指したいDBエンジニア、プログラマ ・「SQLとは何なのか」を知りたいと思っている人 におすすめの一冊です。 第1部 魔法のSQL 1 CASE式のススメ 2 必ずわかるウィンドウ関数 Column なぜONではなくOVERなのか? 3 自己結合の使い方 Column SQL とフォン・ノイマン 4 3値論理とNULL Column 文字列とNULL 5 EXISTS述語の使い方 6 HAVING句の力 Column 関係除算 Column HAVING 句とウィンドウ関数 7 ウィンドウ関数で行間比較を行なう 8 外部結合の使い方 9 SQLで集合演算 10 SQLで数列を扱う 11 SQLを速くするぞ 12 SQLプログラミング作法 第2部 リレーショナルデータベースの世界 13 RDB近現代史 14 なぜ“関係”モデルという名前なの? 15 関係に始まり関係に終わる 16 アドレス、この巨大な怪物 17 順序をめぐる冒険 18 GROUP BYとPARTITION BY 19 手続き型から宣言型・集合指向へ頭を切り替える7箇条 20 神のいない論理 21 SQLと再帰集合 22 NULL撲滅委員会 23 SQLにおける存在の階層 第3部 付録 A 演習問題の解答 B 参考文献
この本がどの学習段階で役立つかは、 関連する ロードマップ から確認できます。