達人に学ぶSQL徹底指南書 第2版 初級者で終わりたくないあなたへ

目次

第1部 魔法のSQL

1 CASE式のススメ SQLで条件分岐を表現する

[導入]CASE式の構文

既存のコード体系を新しい体系に変換して集計する

異なる条件の集計を1つのSQLで行う

CHECK制約で複数の列の条件関係を定義する

条件を分岐させたUPDATE

テーブル同士のマッチング

CASE式の中で集約関数を使う

 

2 必ずわかるウィンドウ関数 順序を使ったプログラミングの復活

ウィンドウとは何か?

1枚でわかるウィンドウ関数

フレーム句を使って違う行を自分の行に持ってくる

ウィンドウ関数の内部動作

 

3 自己結合の使い方 物理から論理への跳躍

重複順列・順列・組み合わせ

重複行を削除する

部分的に不一致なキーの検索

 

4 3値論理とNULL   SQLの甘い罠

本題に入る前に

理論編

実践編

 

5 EXISTS述語の使い方 SQLの中の述語論理

理論編

実践編

 

6 HAVING句の力 世界を集合として見る

データの歯抜けを探す

HAVING句でサブクエリ-最頻値を求める

NULLを含まない集合を探す

HAVING句で全称量化

一意集合と多重集合

関係除算でバスケット解析

 

7 ウィンドウ関数で行間比較を行う さらば相関サブクエリ

成長・後退・現状維持

時系列に歯抜けがある場合ー直近と比較

ウィンドウ関数vs.相関サブクエリ

オーバートラップする期間を調べる

 

8 外部結合の使い方 SQLの弱点ーその傾向と対策

外部結合で行列変換:その1(行→列)ークロス表を作る

外部結合で行列変換:その2(列→行)ー繰り返し項目を1列にまとめる

クロス表で入れ子の表側を作る

掛け算としての結合

完全外部結合

外部結合で集合演算

外部結合で差集合を求める AーB

外部結合で差集合を求める BーA

完全外部結合で排他的和集合を求める

 

9 SQLで集合演算 SQLと集合論

導入ー集合演算に関するいくつかの注意点

テーブル同士のコンペアー集合の相当性チェック[基本編]

テーブル同士のコンペアー集合の相当性チェック[応用編]

差集合で関係除算を表現する

等しい部分集合を見つける

重複行を削除する高速クエリ

 

10 SQLで数列を扱う SQLで順序を扱うー集大成

連番を作ろう

欠番を全部求める

3人なんですけど、座れますか?

折り返しのある数列

単調増加と単調減少

 

11 SQLを早くするぞ お手軽SQLパフォーマンスチューニング

効率の良い検索を利用する

ソートを回避する

極地関数(MAX /MIN)でインデックスを使う

WHERE句で書ける条件はHAVING句には書かない

そのインデックス、本当に使われてますか?

中間テーブルを減らせ

 

12 SQLプログラミング作法 宗教戦争をこえて

テーブル設計

コーディングの指針

大文字と小文字

 

第2部 リレーショナルデータベースの世界

13 RDB近現代史 データベースに破壊的イノベーションは二度起きるか?

リレーショナルデータベースの歴史

破壊的イノベーションは繰り返すか?

NoSQLの種類と解決策

パフォーマンス問題の解決

 

14 なぜ“関係”モデルという名前なの? なぜ“表”モデルという名前ではないのか?

関係の定義

定義域の憂鬱

関係値と関係変数

関係と関係は可能か?

 

15 関係に始まり関係に終わる 閉じた世界の幸せについて

演算から見た集合

実践と原理

 

16 アドレス、この巨大な怪物 なぜリレーショナルデータベースにポインタがないのか?

関係モデルはアドレスから自由になるために生まれた

プログラミングに氾濫するアドレス

去り行かない老兵ーバッカスの夢

 

17 順序をめぐる冒険 SQLのセントラルドグマ

遅れてきた主役

行に順序はあるべきか?

 

18 GROUP BYとPARTITION BY   類は友を呼ぶ

その違いわかりますか?

 

19 手続き型から宣言型・集合指向へ頭を切り替える7箇条 円を描く

1.IF文やCASE文は、CASE式で置き換える。SQLはむしろ関数型言語と考え方が近い

2.ループはGROUP BY句とウィンドウ関数で置き換える

3.テーブルの行に順序はない

4.テーブルを集合と見なそう

5.EXISTS述語と「量化」の概念を理解しよう

6.HAVING句の真価を学ぶ

7.四角を描くな、円を描け

 

20 神のいない論理 論理学の歴史をちょっとだけ

汝、場合により命題の真偽を捨てよ

論理学の革命

人間のための論理

 

21 SQLと再帰集合 SQLと集合論の深い仲

実務の中の再帰集合

ノイマンの先輩たち

数とは何か?

SQLの魔術と科学

 

22 NULL撲滅委員会 万国のDBエンジニア、団結せよ!

決意表明〜スベテノ DBエンジニア ニ 告グ〜

なぜNULLがそんなに悪いのか?

しかしNULLを完全に排除することはできない

コードの場合ー未コード化用コードを割り振る

名前の場合ー「名無しの権兵衛」を割り振る

数値の場合ー0で代替する

日付の場合ー最大値・最小値で代替する

指針のまとめ

 

23 SQLにおける存在の階層 厳しき格差社会

述語理論における階層、集合論における階層

なぜ集約すると、もとのテーブルの列を参照できなくなるのか?

単元集合も立派な集合です!

 

第3部 付録

PHPフレームワーク Laravel Webアプリケーション開発 バージョン5.5 LTS対応

知って得する! おうちの数学

関連記事

  1. Androidアプリ開発の極意 ~プロ品質を実現…

    目次第1章 開発を円滑に進めるためのコツ1.1 開発…

  2. ゾンビ 対 数学 ― 数学なしでは生き残れない

    目次第1章 6時間後 生ける屍の授業開始第2章 7時…

  3. はじめての技術書ライティング―IT系技術書を書く…

    目次第1章 準備1.1 なぜ書き方を学ぶ必要があるの…

  4. 週刊東洋経済 2020年8/22号 すごいベンチ…

    目次経済を見る眼ニュースの核心ニュース最前線…

  5. 60分でわかる! キャッシュレス決済 最前線

    目次Chapter1 キャッシュレス決済が変える世の中の「し…

  6. さわって学べるプログラミング図鑑

    目次かっこいいプログラマーになれるかな?分解してみよ…

  7. PHPフレームワーク Laravel実践開発

    目次Chapter1 Laravelのコア機能を考える…

  8. Javaビルドツール入門 Maven/Gradl…

    目次Chapter1 ビルドツールの基礎知識1‐1 …

最近の記事

  1. Microsft .NET C#
  2. れいといちかとまほうのトンネル
PAGE TOP