有名な本はとりあえず読んでみたくなります。
概要
本書のコンセプトは「中級SQLプログラミング入門」です。実務でのSQLプログラミングの経験が半年から1年くらいある方を読書に想定しています。
おぉ。すごく良いコンセプト。初級者向けの本はたくさんありますが中級者向けとなるとグッと減りますよね。ちょうど実務でSQLの経験が1年ほどあるのでドンピシャかなと。毎日触っているわけではないですが。
本書は三部構成です。
- 第1部 魔法のSQL
- 第2部 リレーショナルデータベースの世界
- 第3部 付録
付録は演習問題の解答と参考文献です。
第1部 魔法のSQL
一章毎にCASE式、ウィンドウ関数、自己結合などのSQLの道具を紹介しています。CASE式から始まっているようにド素人はお呼びでないです(最初に触れているのは理由があります)各テーマが長すぎず基本的には独立しているため空き時間などにも読みやすいです。
演習問題もついていたのですがSQLのクイズって楽しいですね。『SQLパズル』という本が言及されていたので今度買ってみようかと思います。
二章ほど抜き出し。
3値論理とNULL
- NULLには未知(Unknown)と適用不能(Not Applicable)がある
- NULLは値でも変数でもなく比較述語を適用できないため「=NULL」は不可
- 真理値のunknownとNULLのUnknown(未知)は異なる
- AND演算unknownが含まれるとunknownかfalseになる
- NOT INとNOT EXISTSは同値ではない
この章とんでもなく大事な気がするので読み直さないとヤバい。
EXISTS述語の使い方
第2部 リレーショナルデータベースの世界
SQLのバックグラウンドが分かる話。読み物として面白い。
手続き型から宣言型・集合指向へ頭を切り替える7箇条
この章にSQL的な考え方への指針がまとまっています。
- IF文やCASE文は、CASE式で置き換える。SQLはむしろ関数型言語と考え方が近い
- ループはGROUP BY句とウィンドウ関数で置き換える
- テーブルの行に順序はない
- テーブルを集合とみなそう
- EXISTS述語と「量化」の概念を理解しよう
- HAVING句の真価を学ぶ
- 四角を描くな、円を描け
NULL撲滅委員会
ここに書いてあります。
おわりに
今年読んだ本で一番良かった。