プログラマのためのSQL 第4版
- 作者: ジョー・セルコ,Joe Celko,ミック
- 出版社/メーカー: 翔泳社
- 発売日: 2013/05/24
- メディア: 大型本
- この商品を含むブログ (16件) を見る
本書は特定のベンダに依存しない、標準のSQLに関する書籍です。そのため、特定のDBMSではサポートしていない構文も説明されていることがありますが、それほどSQLについて網羅的に説明されている書籍ともいえます。本書の副題「すべてを知り尽くしたいあなたに」もそれを表しているといえるでしょう。本書は全39章ですが、大きく分けて12章までの前半と13章以降の後半に分けられます。
前半はデータベースの基礎的な概念やテーブル、型、制約などのSQLで扱う基本的な要素を説明します。主な章は次の通りです。
- 第2章 トランザクションと同時実行制御
- 第5章 基底テーブルとそれに関連する要素
- 第7章 手続き型の遺産
- 第9章 正規化
- 第10~12章 数値型、時間型、文字列型
第7章はタイトルからはわかりにくいですがストアドプロシージャやトリガを説明する章です。ただし、著者はトリガはパフォーマンス上の欠点があるので限られた場合を除いて「極力使うべきではない」と論じています。
後半はテーブルの操作や各種演算子、述語、集約関数、それらの応用テクニックを説明します。主な章は次の通りです。
- 第13章 NULL:SQLにおける失われたデータ
- 第15章 テーブルの操作
- 第18章 CASE式
- 第24章 単純なSELECT文
- 第25章 高度なSELECT
- 第29章 単純な集約関数
- 第30章 高度な集約、ウィンドウ関数、OLAP
- 第39章 SQLの最適化
第13章はSQLにおけるNULLの扱いについて説明します。データベースやSQL関連の書籍は多くありますが、これほどNULLについて詳細に説明する書籍は多くないのではと思います。著者はNULLの使用を可能な限り避けるように警告しています。
本書の序文では「本書は初心者向けではない」と断言されています。たしかに800ページ近くのボリュームで内容が濃く、経験者向けに書かれてはいますが、基礎的な内容を扱う章や単純なSQLの構文を扱う章は経験が浅くとも理解できる内容です。また、本書を手元に置いて読み返すことで、初めは理解しにくかった内容も経験と共に理解が進むでしょう。SQLは長年利用され、今後も利用され続けるであろう寿命の長い言語です。SQLの知識はアプリケーションの種類によっては必須と言えます。本書はそのようなSQLを学ぶ上で多少時間をかけてでも読む価値があります。