2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

スッキリわかるSQL入門を読んだ感想

Last updated at Posted at 2025-05-24

はじめに

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図を作る前段階の、要件からエンティティを抽出する工程がうまくいかないです。

これからデータベース設計の書籍を読んで学習していきます!

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?