ゼロからはじめるデータベース操作 SQL
翔泳社
著者:ミック
はじめに
本書について
本書の対象となる読者
本書で学習するための前提知識
本書で対象とするリレーションデータベース
本書での学習にあたって
付属CD-ROMのご案内
第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 TABLE文とDELETE文
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-ほしい積み木だけ取得する
練習問題
付録A PostgreSQLのインストール
付録B PostgreSQLでSQLを実行する方法
付録C 練習問題の解答
索引