無料で学ぶ『達人に学ぶSQL徹底指南書 第1版』

# はじめに
『達人に学ぶSQL徹底指南書 第1版』は、CodeZine連載とミック氏ウェブサイトの掲載記事をもとに、加筆・編集されたものです。

CodeZine連載、および、ミック氏ウェブサイトは、どちらもオンラインの無料公開コンテンツです。

今回、「書籍と元コンテンツの対応表」を作成しました。
書籍のために書き下ろされた一部コンテンツや演習問題は見れませんが、その一方、編集で割愛された内容などが含まれるので、書籍以上のことを学べる箇所もあります。

すでに新版『達人に学ぶSQL徹底指南書 第2版』が出ていますが、各テーマは第1版でも大きく変わっておらず、現在でも通用する基本的で面白い内容なので、一見の価値はあると思います。


# 書籍と元コンテンツの対応表
| No. | 目次 | CodeZine連載 | ミック氏ウェブサイト | テーブル定義<br>サポートページ |
|----|-----|-------------|--------------|----------------------------|
|1-1 |CASE式のススメ|[CASE式のススメ（前編）]<br>[CASE式のススメ（後編）]|[CASE式のススメ]|[link-p1_1]|
|1-2 |自己結合の使い方|[自己結合の使い方]|-|[link-p1_2]|
|1-3 |3値論理とNULL|[3値論理とNULL]|-|[link-p1_3]|
|1-4 |HAVING句の力|[HAVING句の力]|[HAVING句の力][HAVING句の力 ミック]　|[link-p1_4]|
|1-5 |外部結合の使い方|[外部結合の使い方]|-|[link-p1_5]|
|1-6 |相関サブクエリで行と行を比較する|[相関サブクエリで行と行を比較する]|-|[link-p1_6]|
|1-7 |SQLで集合演算|[SQLで集合演算]|-|[link-p1_7]|
|1-8 |EXISTS述語の使い方|-||[link-p1_8]|
|1-9 |SQLで数列を扱う|[SQLで数列を扱う]|-|[link-p1_9]|
|1-10|帰ってきたHAVING句|[帰ってきたHAVING句]|-|[link-p1_10]|
|1-11|SQLを速くするぞ|-|[SQLを速くするぞ]|[link-p1_11]|
|1-12|SQLプログラミング作法|-|[SQLプログラミング作法]|[link-p1_12]|
|2-1 |リレーショナル・データベースの歴史|-|[リレーショナル・データベースの歴史(1)]<br>[リレーショナル・データベースの歴史(2)]<br>[リレーショナル・データベースの歴史(3)]|[link-p2_1]|
|2-2 |なぜ"関係"モデルという名前なの？|-|[なぜ"関係"モデルという名前なの？]|[link-p2_2]|
|2-3 |関係に始まり関係に終わる|-|-|[link-p2_3]|
|2-4 |アドレス、この巨大な怪物|-|[アドレス、この巨大な怪物]|[link-p2_4]|
|2-5 |GROUP BYとPARTITION BY|-|[GROUP BYとPARTITION BY]|[link-p2_5]|
|2-6 |手続き型から宣言型・集合指向へ頭を切り替える７箇条|-|[手続き型から宣言型・集合指向へ頭を切り替える７箇条]|[link-p2_6]|
|2-7 |SQLと再帰集合|-|[再帰集合とSQL]|[link-p2_7]|
|2-8 |神のいない論理|-|[3値論理 ―― 神のいない論理]|[link-p2_8]|
|2-9 |NULL撲滅委員会|-|[NULL撲滅委員会]|[link-p2_9]|
|2-10|SQLにおける存在の階層|-|-|[link-p2_10]|


<!-- CodeZine連載 -->
[CASE式のススメ（前編）]:https://codezine.jp/article/detail/404
[CASE式のススメ（後編）]:https://codezine.jp/article/detail/405
[自己結合の使い方]:https://codezine.jp/article/detail/460
[3値論理とNULL]:https://codezine.jp/article/detail/532
[HAVING句の力]:https://codezine.jp/article/detail/652
[外部結合の使い方]:https://codezine.jp/article/detail/751
[相関サブクエリで行と行を比較する]:https://codezine.jp/article/detail/907
[SQLで集合演算]:https://codezine.jp/article/detail/1304
[SQLで数列を扱う]:https://codezine.jp/article/detail/1076
[帰ってきたHAVING句]:https://codezine.jp/article/detail/1420
[手続き型から宣言型・集合指向へ頭を切り替える７箇条]:https://mickindex.sakura.ne.jp/database/db_laws.html

<!-- ミック氏サイト -->
[CASE式のススメ]:https://mickindex.sakura.ne.jp/database/db_case.html
[HAVING句の力 ミック]:https://mickindex.sakura.ne.jp/database/celko/celko_tis.html
[NULL撲滅委員会]:https://mickindex.sakura.ne.jp/database/db_getout_null.html
[SQLを速くするぞ]:https://mickindex.sakura.ne.jp/database/db_optimize.html
[SQLプログラミング作法]:https://mickindex.sakura.ne.jp/database/db_manner.html
[リレーショナル・データベースの歴史(1)]:https://mickindex.sakura.ne.jp/database/db_history1.html
[リレーショナル・データベースの歴史(2)]:https://mickindex.sakura.ne.jp/database/db_history2.html
[リレーショナル・データベースの歴史(3)]:https://mickindex.sakura.ne.jp/database/db_history3.html
[なぜ"関係"モデルという名前なの？]:https://mickindex.sakura.ne.jp/database/db_whyname.html
[アドレス、この巨大な怪物]:https://mickindex.sakura.ne.jp/database/db_pointer.html
[GROUP BYとPARTITION BY]:https://mickindex.sakura.ne.jp/database/db_gb_pb.html
[再帰集合とSQL]:https://mickindex.sakura.ne.jp/database/db_recursive.html
[3値論理 ―― 神のいない論理]:https://mickindex.sakura.ne.jp/database/db_3vl.html
<!-- テーブル定義文 サポートページ -->
[link-p1_1]: https://mickindex.sakura.ne.jp/database/db_support_sinan.html#LocalLink-p1_1
[link-p1_2]: https://mickindex.sakura.ne.jp/database/db_support_sinan.html#LocalLink-p1_2
[link-p1_3]: https://mickindex.sakura.ne.jp/database/db_support_sinan.html#LocalLink-p1_3
[link-p1_4]: https://mickindex.sakura.ne.jp/database/db_support_sinan.html#LocalLink-p1_4
[link-p1_5]: https://mickindex.sakura.ne.jp/database/db_support_sinan.html#LocalLink-p1_5
[link-p1_6]: https://mickindex.sakura.ne.jp/database/db_support_sinan.html#LocalLink-p1_6
[link-p1_7]: https://mickindex.sakura.ne.jp/database/db_support_sinan.html#LocalLink-p1_7
[link-p1_8]: https://mickindex.sakura.ne.jp/database/db_support_sinan.html#LocalLink-p1_8
[link-p1_9]: https://mickindex.sakura.ne.jp/database/db_support_sinan.html#LocalLink-p1_5
[link-p1_9]: https://mickindex.sakura.ne.jp/database/db_support_sinan.html#LocalLink-p1_5
[link-p1_10]: https://mickindex.sakura.ne.jp/database/db_support_sinan.html#LocalLink-p1_10
[link-p1_11]: https://mickindex.sakura.ne.jp/database/db_support_sinan.html#LocalLink-p1_11
[link-p1_12]: https://mickindex.sakura.ne.jp/database/db_support_sinan.html#LocalLink-p1_12
[link-p2_1]: https://mickindex.sakura.ne.jp/database/db_support_sinan.html#LocalLink-p2_1
[link-p2_2]: https://mickindex.sakura.ne.jp/database/db_support_sinan.html#LocalLink-p2_2
[link-p2_3]: https://mickindex.sakura.ne.jp/database/db_support_sinan.html#LocalLink-p2_3
[link-p2_4]: https://mickindex.sakura.ne.jp/database/db_support_sinan.html#LocalLink-p2_4
[link-p2_5]: https://mickindex.sakura.ne.jp/database/db_support_sinan.html#LocalLink-p2_5
[link-p2_6]: https://mickindex.sakura.ne.jp/database/db_support_sinan.html#LocalLink-p2_6
[link-p2_7]: https://mickindex.sakura.ne.jp/database/db_support_sinan.html#LocalLink-p2_7
[link-p2_8]: https://mickindex.sakura.ne.jp/database/db_support_sinan.html#LocalLink-p2_8
[link-p2_9]: https://mickindex.sakura.ne.jp/database/db_support_sinan.html#LocalLink-p2_9
[link-p2_10]: https://mickindex.sakura.ne.jp/database/db_support_sinan.html#LocalLink-p2_10