RDB全般とSQL
RDB全般とSQL。データベースについては、よくいわれるように、階層型、ネットワーク型、リレーショナル型
などの形式がありますが、現在データベース開発に関わる方のほとんどはリレーショナルデータベース(RDB)を
使った開発をしていると思います。そして、そのRDBにアクセスするためにほとんどの人がSQLを使っていると
思います。本ドキュメントでは、それらに関わる本を紹介します。
- SQL教科書
- SQL Tips(コツ)
- SQL パズル
- SQL規格リファレンス
- RDB全般
SQLについては、SQLそのものを勉強してゆく教科書的なもの、そして、それを実務に使うときに必要な
ボキャブラリーをリストしたTips(コツ)が多々のっているもの。さらに、SQLの規格そのものを説明した物に分けることができます。
SQL教科書的な情報や、特定のRDB用のTipsはWebで入手できるようになってきていますが、やはり普遍的な
Tipsや、規格についてのリファレンスは、本にあたったほうが効率がよいと思います。
ただ実際のところ、開発に必要なものを普遍的に集めたものとしてはプログラマのためのSQLがあれば
十分です。
目的がはっきりしていて、具体的なSQLを知りたいときにはSQLクックブックも便利です。
それ以外はWebで入手するか、特定のRDB用の本を買ったほうがいいでしょう。Tipsを超える範囲では俗に「SQLパズル」と呼ばれる書籍やWebが参考になるでしょう。
またSQL規格を網羅したリファレンスは、
実際に一般の開発者が参照する必要はないでしょう。
SQL教科書
- すらすらと手が動くようになるSQL書き方ドリル
, 羽生 章洋, 技術評論社(2005/03)
オンラインでは初版の誤字・脱字などか指摘されていますが、それを差し引いても優れた本だと思います。
辞書(==各メーカのマニュアル), 教科書(==SQL教科書)に対する「ドリル」ということで、うまく作ったもんだなー
と感心します。教科書によいものがない分、先にこちらをざっくりとやってから、特定のRDB用の本をやったほうがいいかもしれませんね。
- 第1章 学習の進め方とデータベースの準備
- 第2章 ひとつのテーブルを扱う
- 第3章 複数のテーブルを扱う
- 第4章 追加・更新・削除
- 第5章 応用問題
- 一晩で学ぶSQL―データベースの必須要素をかんたんにマスター
,Ben Forta (原著), 篠原 慶 (翻訳), インプレス(2000/08)
Sams Teach Yourself SQL in 10 Minutesの初版の翻訳本。原著は1st(1999),
2nd(2001),
3rd(2003)と版を重ねて、
現在第3版が最新版。amazon.comのキーワード"SQL"の検索結果でも常に売り上げ上位に
入っています。構成がよく考えられていて、初学者にオススメ。ただ、CD-ROMは付属していないので、
実際に動作させながら本を読み進めるためには、無料のRDBMSをPCにインストールして動作させながら
読んでいくことが望ましいです。現在商用であれば、MS SQL Server 2005 Express Edition,
オープンソースであればFirebird 2.0をオススメします
(理由はまた機会があれば記述したいと思います)。
残念ながら翻訳は初版のままで、さすがに内容が古いので改訂が望まれます。
- 第1章 SQLの理解
- 第2章 データの取得
- 第3章 取得したデータの並べ替え
- 第4章 データの検索条件
- 第5章 高度なデータ検索条件
- 第6章 ワイルドカード検索の使用
- 第7章 計算式フィールドの作成
- 第8章 データ操作関数
- 第9章 データの集計
- 第10章 データのグループ化
- 第11章 副問い合わせ
- 第12章 テーブルのジョイン
- 第13章 高度なジョインの作成
- 第14章 問い合わせの合成
- 第15章 データの挿入
- 第16章 データの更新と削除
- 第17章 テーブルの作成と操作
- 第18章 ビューの使用
- 第19章 トランザクション制御の使用
- 第20章 高度なSQLの使い方
SQL Tips(コツ)
- SQLクックブック, Anthony Molinaro (原著)/木下 哲也 (翻訳)/有限会社 福龍興業 (翻訳) , オライリー・ジャパン (2007/01)
商用御三家(IBM DB2, MS SQL Server, Oracle)と、オープンソースDB(MySQL, PostgreSQL)について、
SQLプログラミングのテクニックを伝えることに注力した本です。とりあげられている5種のDB上で、
実際のSQLレシピを展開しており、とにかく具体的なSQLを直接知りたい場合には便利です。
原著はSQL Cookbook(2005/12)です。
- 第1章 レコードの取得
- 第2章 クエリ結果のソート
- 第3章 複数テーブルの扱い
- 第4章 挿入、更新、削除
- 第5章 メタデータクエリ
- 第6章 文字列の扱い
- 第7章 数値の扱い
- 第8章 日付演算
- 第9章 日付操作
- 第10章 範囲の扱い
- 第11章 高度な検索
- 第12章 レポート作成とウエアハウス化
- 第13章 階層クエリ
- 第14章 その他
- プログラマのためのSQL 第2版, Joe Celko (原著)/秋田 昌幸 (翻訳), ピアソンエデュケーション 第2版 (2001/04)
各RDBMSに共通な普遍的なTipsということになるとこの本しかありません。
原著はJoe Celko's SQL for Smarties: Advanced SQL Programmingで、
1st(1995),
2nd(2004),
3rd(2005)と版を重ねて、
最新は第3版となります。本翻訳は一つ前の第二版の和訳です。
- 第1章 データベースの設計
- 第2章 正規化
- 第3章 SQLの数値データ
- 第4章 SQLの時間データ型
- 第5章 SQLの文字データ型
- 第6章 NULL―SQLの失われたデータ
- 第7章 その他の式
- 第8章 その他のスキーマオブジェクト
- 第9章 テーブルの操作
- 第10章 比較またはシータ演算子
- 第11章 評価述語
- 第12章 LIKEとSIMILAR述語
- 第13章 BETWEENとOVERLAPS述語
- 第14章 [NOT] IN 述語
- 第15章 EXISTS述語
- 第16章 限定されたサブクエリー述語
- 第17章 SELECT文
- 第18章 ビューと一時テーブル
- 第19章 データの分割
- 第20章 グループ化
- 第21章 集計関数
- 第22章 補助的なテーブル
- 第23章 SQLでの統計
- 第24章 リージョン、ラン、シーケンス
- 第25章 SQLにおける配列
- 第26章 集合演算
- 第27章 部分集合
- 第28章 SQLの木構造の隣接リストモデル
- 第29章 入れ子集合モデルによるSQLでの木構造
- 第30章 SQLのグラフ
- 第31章 コードの最適化
- プログラマのためのSQL, Joe Celko (原著)/株式会社シーエーシー/秋田 昌幸 (翻訳), トッパン 初版 (1996/02)
原著はJoe Celko's SQL for Smarties: Advanced SQL Programmingで、1st(1995)
の翻訳となります。私が最初に知ったのはこの本で、現在は新品は無理ですが、オークションなどで時々安くでていることがあります。
二版のほうが、新しいテクニックの追加や、元のテクニックの改善が行われていますので、できるだけ二版、もしくは英語版の三版を
入手することをオススメします。ただ初版に含まれていた理論的な記述のいくつかはけずられて、同じ著者の
Joe Celko's Data & Databases: Concepts in Practice(未翻訳)に移されたそうです。
- 第1章 はじめに
- 第2章 データベースの設計
- 第3章 SQLの数値データ
- 第4章 SQLの時間データ型
- 第5章 SQLの文字データ型
- 第6章 NULL―SQLの失われたデータ
- 第7章 その他のスキーマオブジェクト
- 第8章 テーブル操作
- 第9章 比較またはシータ演算子
- 第10章 値を持った述語
- 第11章 LIKE述語
- 第12章 BETWEEN、OVERLAPS述語
- 第13章 [NOT] IN 述語
- 第14章 EXISTS述語
- 第15章 限定されたサブクエリー述語
- 第16章 SELECT文
- 第17章 ビュー
- 第18章 データの分割
- 第19章 グループ化
- 第20章 集計関数
- 第21章 統計
- 第22章 リージョン、ラン、シーケンス
- 第23章 SQLにおける配列
- 第24章 集合演算
- 第25章 部分集合
- 第26章 木構造
- 第27章 グラフと基本的な用語
- 第28章 クエリーの最適化
- 第29章 データ設計
- 付録.A チェックデジットプログラム
SQLパズル
SQLリファレンス
SQL/92(SQL-92と表記されたり、以前はSQL2と呼ばれていた)までのリファレンスで代表的なものは以下の三つ。
- A Guide to the SQL Standard
- Understanding the New SQL: A Complete guide
- SQL-The Standard Handbook
このうち、木村になじみの深い本の翻訳を取り上げることにします。
- 標準SQLガイド改訂第4版, C.J.Date, Hugh Darwen(原著)/Quipu LLC(翻訳), アスキー出版局 改訂第4版 (1998/12)
原著はA Guide to the SQL Standardで、
1st(1987),
2nd(1989),
3rd(1993)と版を重ねて、
最新は4th(1997)となります。
3rdから共著にHugh Darwenが加わりました。
本翻訳はこの最新版である4版の和訳です。和訳は以前アジソン・ウェスレイトッパンから、初版と
改訂第2版が発行されていました。ただ、邦訳は2版から4版になる際にページ数も倍増して表紙も
大幅に変わったので、同じ本と気づく人は少ないでしょう。木村自身は第二版を最初に読みました。SQL/89までで十分な人や、SQLのエッセンスをざっくり知りたい人には2版もいいと思います(オークションなどで安価に入手できます)。
- 第1部 はじめに
- 第2部 準備
- 第3章 言語の基本要素
- 第4章 カタログとスキーマ
- 第5章 接続、セッション、トランザクション
- 第6章 バインディング方式
- 第3部 データ定義と操作
- 第7章 スカラーオブジェクト、演算子、式
- 第8章 データ定義: ドメインとベーステーブル
- 第9章 データ操作: 非カーソル操作
- 第10章 データ操作: カーソル操作
- 第11章 テーブル式
- 第12章 条件式
- 第13章 ビュー
- 第4部 データ制御
- 第5部 高度な概念
- 第16章 情報の消失とヌル
- 第17章 日付と時刻
- 第18章 一時テーブル
- 第19章 文字データ
- 第20章 動的SQL
- 第21章 情報スキーマ
- 第22章 例外処理
- 第23章 呼び出しレベルインターフェイス
- 付録
- 付録A SQL構文
- 付録B 言語レベルと順応性
- 付録C SQL/92とSQL/89
- 付録D 未解決な問題
- 付録E 永続的なストアドモジュール
- 付録F SQL3の概要
- 付録G 参考文献
RDB全般
TODO
更新履歴
- 2007/03/30 SQLクックブツ句を追加
- 2007/01/11 SQLパズル1st翻訳版で割愛されたパズルについて言及
- 2006/11/27 SQLパズル追加
- 2006/03/07 標準SQLガイド追加
- 2005/12/05 準備原稿作成
本ページの著者: 木村明治(KIMURA, Meiji)