Stand Up and Shout!

勉強したことや、思いついたことを気ままに記述します

SQL 第2版 ゼロからはじめるデータベース操作

2016年6月17日に『SQL 第2版 ゼロからはじめるデータベース操作』が出版されました。

マインドマップによる整理

(準備中)

目次の俯瞰(マークダウン形式)

# SQL 第2版 ゼロからはじめるデータベース操作
## はじめに
## 本書について
## 本書の対象となる読者
## 本書で学習するための前提知識
## 本書で対象とするリレーショナルデータベース
## 本書での学習にあたって
## サンプルのダウンロードについて
## 第0章 イントロダクション- -SQL 学習環境を作ろう
### PostgreSQLのインストールと接続設定
#### インストールの手順
#### 設定ファイルの書き換え
#### PostgreSQLSQLを実行する
### PostgreSQL への接続 (ログイン)
#### SQL の実行
#### 学習用データベースの作成
#### 学習用データベースへの接続 (ログイン)
## 第1章 データベースとSQL
### 1-1 データベースとは何か
#### 私たちのすぐそばにあるデータベース
#### なぜDBMS が必要なのか
#### DBMSにはいろんな種類がある
### 1-2 データベースの構成
#### RDBMSの一般的なシステム構成
#### テーブルの構造
### 1-3 SQLの概要
#### 標準SQL
#### SQLの文とその種類
#### SQLの基本的な記述ルール
### 1-4 テーブルの作成
#### 作成するテーブルの内容
#### データベースの作成 (CREATE DATABASE文)
#### テーブルの作成 (CREATE TABLE文)
#### 命名ルール
#### データ型の指定
#### 制約の設定
### 1-5 テーブルの削除と変更
#### テーブルの削除(DROP TABLE文)
#### テーブル定義の変更 (ALTER TABLE文)
#### Shohinテーブルへのデータ登録
### 練習問題
## 第2章 検索の基本
### 2-1 SELECT文の基本
#### 列を出力する
#### すべての列を出力する
#### 列に別名をつける
#### 定数の出力
#### 結果から重複行を省く
#### WHERE句による行の選択
#### コメントの書き方
### 2-2 算術演算子と比較演算子
#### 算術演算子
#### NULLには要注意
#### 比較演算子
#### 文字列に不等号を使うときの注意
#### NULLに比較演算子は使えない
### 2-3 論理演算子
#### 練習問題
#### NOT 演算子
#### AND 演算子とOR演算子
#### カッコ() をつけると強くなる
#### 論理演算子と真理値
#### NULLを含む場合の真理値
## 第3章 集約と並べ替え
### 3-1 テーブルを集約して検索する
#### 集約関数
#### テーブルの行数を数える
#### NULLを除外して行数を数える
#### 合計を求める
#### 平均値を求める
#### 最大値・最小値を求める
#### 重複値を除外して集約関数を使う (DISTINCTキーワード)
### 3-2 テーブルをグループに切り分ける
#### GROUP BY 句
#### 集約キーにNULLが含まれていた場合
#### WHERE句を使った場合のGROUP BY の動作
#### 集約関数とGROUP BY句にまつわるよくある間違い
### 3-3 集約した結果に条件を指定する
#### HAVING句
#### HAVING旬に書ける要素
#### HAVING旬よりもWHERE句に書いたほうが良い条件
### 3-4 検索結果を並べ替える
#### ORDER BY 句
#### 昇順と降順の指定
#### 複数のソートキーを指定する
#### NULLの順番
#### ソートキーに表示用の別名を使う
#### ORDER BY 句に使える列
#### 列番号は使ってはいけない
### 練習問題
## 第4章 データの更新
### 4-1 データの登録 (INSERT文の使い方)
#### INSERTとは
#### INSERT文の基本構文
#### 列リストの省略
#### NULLを挿入する
#### デフォルト値を挿入する
### 4-2 データの削除 (DELETE文の使い方)
#### DROP TABLEX & DELETEX
#### DELETE文の基本構文
#### 削除対象を制限したDELETE文 (探索型DELETE)
#### ほかのテーブルからデータをコピーする
### 4-3 データの更新 (UPDATE文の使い方)
#### UPDATE文の基本構文
#### 条件を指定したUPDATE文 (探索型UPDATE)
#### NULLで更新するには
#### 複数列の更新
### 4-4 トランザクション
#### トランザクションとは何か
#### トランザクションを作るには
#### ACID特性
### 練習問題
## 第5章 複雑な問い合わせ
### 5-1 ビュー
#### ビューとテーブル
#### ビューの作り方
#### ビューの制限事項①ビュー定義でORDER BY句は使えない
#### ビューの制限事項 ②ビューに対する更新
#### ビューを削除する
### 5-2 サブクエリ
#### サブクエリとビュー
#### サブクエリの名前
#### スカラ・サブクエリ
#### スカラ・サブクエリを書ける場所
#### スカラ・サブクエリを使うときの注意点
### 5-3 相関サブクエリ
#### 普通のサブクエリと相関サブクエリの違い
#### 相関サブクエリも、結局は集合のカットをしている
#### 結合条件は必ずサブクエリの中に書く
### 練習問題
## 第6章 関数、述語、 CASE式
### 6-1 いろいろな関数
### 関数の種類
#### 算術関数
#### 文字列関数
#### 日付関数
#### 変換関数
### 6-2 述語
#### 述語とは
#### LIKE述語- 一文字列の部分一致検索
#### BETWEEN述語範囲検索
#### IS NULL, IS NOT NULL—NULL> NULL>
#### IN述語 -OR の便利な省略形
#### IN述語の引数にサブクエリを指定する
#### EXISTS述語
### 6-3 CASE式
#### CASE式とは
#### CASE式の構文
#### CASE式の使い方
### 練習問題
## 第7章 集合演算
### 7-1 テーブルの足し算と引き算
#### 集合演算とは
#### テーブルの足し算 UNION
#### 集合演算の注意事項
#### 重複行を残す集合演算 ALLオプション
#### テーブルの共通部分の選択 INTERSECT
#### レコードの引き算 EXCEPT
### 7-2 結合 (テーブルを列方向に連結する)
#### 結合とは
#### 内部結合- INNER JOIN
#### 外部結合- OUTER JOIN
#### 3つ以上のテーブルを使った結合
#### クロス結合 - CROSS JOIN
#### 結合の方言と古い構文
### 練習問題
## 第8章 SQLで高度な処理を行なう
### 8-1 ウィンドウ関数
#### 練習問題
#### ウィンドウ関数とは
#### ウィンドウ関数の構文
#### 構文の基本的な使い方 - RANK関数の利用
#### PARTITION BYは指定しなくても良い
#### ウィンドウ専用関数の種類
#### ウィンドウ関数はどこで使うか
#### 集約関数をウィンドウ関数として使う
#### 移動平均を算出する
#### 2つのORDER BY
### 8-2 GROUPING演算子
#### 合計行も一緒に求めたい
#### ROLLUP - 合計と小計を一度に求める
#### GROUPING関数 - 偽物のNULLを見分けろ
#### CUBEデータで積み木を作る
#### GROUPING SETS - ほしい積み木だけ取得する
## 第9章 アプリケーションからデータベースへ接続する
### 9-1 データベースの世界とアプリケーションの世界をつなぐ
#### データベースとアプリケーションの関係
#### ドライバー2つの世界の橋渡し
#### ドライバの種類
### 9-2 Javaの基礎知識
#### 何はともあれHello, World
#### コンパイルとプログラムの実行
#### よくあるエラー
### 9-3 Javaから PostgreSQL へ接続する
#### SQL 文を実行するJavaプログラム
#### どうやってJavaはデータベースからデータをとってくるのか
#### データベース接続のプログラムを実行してみよう
#### テーブルのデータを選択してみよう
#### テーブルのデータを更新してみよう
#### まとめ
### 練習問題
## 付属A練習問題の解答
## 索引