はじめに
SQLの基本を学ぶため、スッキリわかるSQL入門を読みました。
こちらの感想記事になります。
良かったところ
圧倒的読みやすさ
-
登場人物との会話形式で進むので非常に読みやすいです
-
登場人物が「なぜこれをするの?」「こういうメリットがあるからです」のように
疑問の後に答えが来る展開で、納得しながら読み進めることができました
図が多く、SQL文の動きがイメージできる
- 例えば UNION を使って2つの SELECT 文の結果を足し合わせた後のテーブルの状態や
GROUP BY を使ってグループごとに集約関数を使った後のテーブルの状態
JOIN をして2つのテーブルを結合した後の状態などが分かりやすかったです
演習問題が豊富
- 256問のドリルがついていて、そのうちSQL文の演習は200問ほどあり、十分な演習を行うことができます
- この演習問題を通して、特にJOINによるテーブル結合の感覚が身につきました
悪かったところ
kindle版では文字検索ができない
- 後述しますが、演習問題は答えしか載っていないので、解説を見るには本を読み返す必要があります
その際、文字検索ができなかったので、少し不便でした
演習問題やドリルのSQL文での答えが見にくい
- 改行されずに書いてあるので非常に見にくかったです
学んだこと
SQLの基本構文
-
DMLと呼ばれるSELECT, UPDATE, DELETE, INSERTの使い方
-
WHEREによる行の絞り込み
-
GROUP BYでのグルーピング、集約関数(SUM, MAXなど)
-
ORDER BYでのソート
-
OFFSET, FETCHを使った取得する行数の指定
テーブルの和集合、差集合、
- UNION、EXCEPT、INTERSECTといった集合演算
テーブルの結合
- JOINやLEFT JOINといった内部結合、外部結合
副問い合わせ(サブクエリ)
- 集約関数などの単一行の値が戻るパターンは、UPDATE文やSELECT文で使える
- 一つのカラムだけ戻るパターンは、WHEREとINを使った条件の絞り込みで使える
- 表の形で戻るパターンは、INSERT文やFROM、JOINで使える
トランザクション
- 正確なデータ操作をするための仕組み
- 原子性、分離性といった性質を持ち、データの不整合を防ぐ
データベース支援機能
- インデックスを作成することで検索性能が向上する
- 他にもビュー、シーケンスといった便利機能がある
テーブルの設計手法
- 概念設計、論理設計、物理設計というフローで運用・保守しやすい設計にする
- 第一正規化〜第三正規化の方法
難しかったこと
-
テーブルの結合を使った演習問題が難しかった
-
テーブルの設計をする演習でエンティティの洗い出しが難しかった
-
ドリルの総合問題で要件からトップダウン、実際の使用例からボトムアップでER図に落とし込むのが難しかったしできなかった
終わりに
SQL文の内容は非常にわかりやすく、演習を通して身についた感があります。
しかし、テーブルの設計は特に難しいと感じました。
現状、ER図を作る前段階の、要件からエンティティを抽出する工程がうまくいかないです。
これからデータベース設計の書籍を読んで学習していきます!
Views: 2