不正解項目の復習&研修まとめ
概要
- 日程: Day 2 / セッション 13
- 時間: 16:40-17:00
- 形式: 演習
- ゴール: 誤答した項目を3つ選び、該当セッションを読み直して「次に同じ問題が出たら正解できる説明」を自分の言葉で書ける
- 学習形式: 演習+振り返り
導入(3分)
確認テストおつかれさまでした。ここからは「間違えたところを財産に変える」最後の20分です。
ここで大事なメッセージを一つ。間違えた問題は嫌な記憶ではなく、自分専用の学習地図 です。「分かっていると思っていたこと」と「本当に分かっていたこと」のギャップが見える、極めて貴重なデータなのです。それを正しく扱う方法を、このセッションで身につけます。
演習(15分)
ステップ1: 間違えた問題を3つ選ぶ(2分)
確認テストで不正解だった問題、または「合っていたけど自信がなかった」問題の中から、3つ を選んでください。
選ぶときのコツ
- 全部やろうとしない(時間切れになる)
- 「これ今日できるようにしたい」の3つに絞る
- 種類はバラバラでOK(概念1つ・SQL記述1つ・エラー修正1つ など)
ステップ2: 間違えた理由を3パターンで分類(3分)
選んだ3問それぞれについて、「なぜ間違えたか」を以下の3パターンに分類してみましょう。
| パターン | 例 | 対処の方向性 |
|---|---|---|
| ① 概念理解不足 | 「HAVINGとWHEREの違いがそもそも分かっていなかった」 | 該当セッションを読み直す。たとえや図を使ってAIに再説明してもらう |
| ② 構文ミス | 「GROUP BYのスペルを間違えた」「>= と => を混同した」 |
何度か書いて手に馴染ませる。typoチェックの習慣 |
| ③ 問題誤読 | 「『含まない』を『含む』で読んだ」「降順と昇順を逆にした」 | 問題文の重要語に下線を引く。実務では「要件の言い直し」で確認 |
ノートに次のように書きます。
第8問 → ② 構文ミス(HAVINGをWHEREと書いた)
第10問 → ① 概念理解不足(サブクエリの構造そのもの)
第14問 → ③ 問題誤読(「WHERE忘れの危険」を答えるべきところを構文の話と勘違い)
ステップ3: 該当セッションを読み直して「正解できる説明」を書く(10分)
各問題ごとに、次の3つを1セットにしてノートに書きます。
- 問題の要点を1行で(自分の言葉で)
- 正しい解答(再現できる形で)
- 次に出たら正解できる説明(自分の言葉で、AIに採点してもらえるくらい具体的に)
記入例
■ 第10問: スカラーサブクエリで平均より高い社員
- 要点: WHEREの中で「全体の平均給与」をサブクエリで計算して比較する
- 解答:
SELECT last_name, first_name, salary
FROM employees
WHERE salary > (SELECT AVG(salary) FROM employees);
- 説明: サブクエリは「クエリの中のクエリ」。スカラー型は1行1列の値を返し、
WHEREの中で値として使える。AVGなど集計関数を使えば1行1列になる。
ポイントは「カッコの中を先に頭で実行する」と読みやすくなること。
該当セッション早見表
| トピック | 戻るべきセッション |
|---|---|
| DBの基本概念、テーブル・主キー・外部キー | Day1 S01, S03 |
| psql・データ型 | Day1 S04, S05 |
| SELECT・WHERE・ORDER BY・LIKE | Day1 S06〜S09 |
| 集約関数・GROUP BY・HAVING | Day1 S10, S11 |
| INSERT・UPDATE・DELETE | Day2 S01, S02 |
| JOIN | Day2 S03, S04 |
| NULL・CASE | Day2 S05, S06 |
| サブクエリ・ビュー | Day2 S07, S08 |
| CREATE TABLE・制約 | Day2 S09, S10 |
| インデックス・トランザクション | Day2 S11 |
研修まとめ(2分)
この2日間で学んだことの全体像
flowchart TD
Start["新入社員: SQL未経験"] --> Day1["Day1: データを読む"]
Day1 --> D1A["DB概念
テーブル・主キー・外部キー"] Day1 --> D1B["環境構築
Docker + psql"] Day1 --> D1C["SELECT
WHERE / ORDER BY / LIKE"] Day1 --> D1D["集計
GROUP BY / HAVING"] D1A --> Day2["Day2: データを変える・つなぐ・設計する"] D1B --> Day2 D1C --> Day2 D1D --> Day2 Day2 --> D2A["INSERT/UPDATE/DELETE"] Day2 --> D2B["JOIN"] Day2 --> D2C["NULL / CASE"] Day2 --> D2D["サブクエリ・ビュー"] Day2 --> D2E["CREATE TABLE・制約"] Day2 --> D2F["インデックス・トランザクション"] D2A --> Goal["ビジネス課題にSQLで答えられる"] D2B --> Goal D2C --> Goal D2D --> Goal D2E --> Goal D2F --> Goal
テーブル・主キー・外部キー"] Day1 --> D1B["環境構築
Docker + psql"] Day1 --> D1C["SELECT
WHERE / ORDER BY / LIKE"] Day1 --> D1D["集計
GROUP BY / HAVING"] D1A --> Day2["Day2: データを変える・つなぐ・設計する"] D1B --> Day2 D1C --> Day2 D1D --> Day2 Day2 --> D2A["INSERT/UPDATE/DELETE"] Day2 --> D2B["JOIN"] Day2 --> D2C["NULL / CASE"] Day2 --> D2D["サブクエリ・ビュー"] Day2 --> D2E["CREATE TABLE・制約"] Day2 --> D2F["インデックス・トランザクション"] D2A --> Goal["ビジネス課題にSQLで答えられる"] D2B --> Goal D2C --> Goal D2D --> Goal D2E --> Goal D2F --> Goal
到達目標9つの振り返り
| No. | 到達目標 | 自己チェック |
|---|---|---|
| 1 | リレーショナルデータベースの基本概念を説明できる | テーブル・レコード・カラム・主キー・外部キーを身近な例で言える? |
| 2 | PostgreSQLの環境構築と基本操作ができる | postgresql-sandboxを起動して \dt \d を打てる? |
| 3 | SELECT文によるデータ取得ができる | 条件・並び替え・集計を含むクエリを書ける? |
| 4 | データの追加・更新・削除ができる | INSERT/UPDATE/DELETEを「WHERE忘れ」せず書ける? |
| 5 | テーブルの結合を理解している | INNER と LEFT を「マッチしない行をどう扱うか」で説明できる? |
| 6 | テーブルの設計と作成ができる | CREATE TABLEと5つの制約を使い分けられる? |
| 7 | インデックスの役割と使い方を理解している | 「本の索引」のたとえで説明できる? |
| 8 | トランザクションの概念を理解している | ACIDと BEGIN/COMMIT/ROLLBACK を振込の例で語れる? |
| 9 | サブクエリとビューを活用できる | スカラー/インライン/EXISTS の違いと、ビューを作れる? |
全部に「はい」と言えなくて当然です。「半分言えれば合格、3つ言えればまずまず」くらいの気持ちで。残りは現場で1つずつ埋めていきます。
研修後の学習ロードマップ
ここまでで皆さんは「SQLの読み書き」の入り口に立ちました。次に学ぶべきことを、優先度順に紹介します。
- 性能チューニング:
EXPLAIN ANALYZEで実行計画を読み、遅いクエリを速くする - トランザクション応用:トランザクション分離レベル、デッドロック対策
- ORM(Object-Relational Mapper):実務ではアプリ言語からORM経由でDBを使うことが多い(Python: SQLAlchemy / Django ORM、TypeScript: Prisma など)
- 本格的なRDBMS運用:バックアップ、レプリケーション、監視、権限管理
- データモデリング:正規化(第1〜第3)、ER図、業務要件をテーブル設計に落とす技術
- モダンな関連技術:CTE(WITH句)、ウィンドウ関数(OVER句)、JSONB、全文検索
特に「現場のSQLを1つ読む → 自分で書き直してみる → 上司や先輩に聞いてみる」の繰り返しが、研修よりも何倍も効きます。今日学んだことは、明日からの「読める景色」を確実に増やしているはずです。
🔄 最後の振り返りチェック
- 「データベースとSQLって何?」を、研修前の自分に1分で説明できますか?
- 間違えた問題3つについて、「なぜ間違えたか」「次は正解できる説明」を書けましたか?
- 研修後に最初に取り組みたいテーマを1つ選べましたか?
最後に
2日間、本当におつかれさまでした。SQLは「一度書けるようになると一生使える」コスパ抜群のスキルです。皆さんが現場で「あ、これSQLで取れるな」と気付ける瞬間が、これからどんどん増えていくはずです。
そして覚えておいてください——AIは常に皆さんの隣にいます。詰まったら聞く、答えを「なぜそうなるか」自分の言葉で確認する、この姿勢さえあれば、研修が終わった後も学習は止まりません。
良いSQLライフを!
補足資料
- 発展課題: 研修期間内に作った全SQL(10〜30本程度)をGitHubに置いて、自分の「SQL学習ポートフォリオ」にする
学習ガイド
想定される質問と回答例
| 質問 | ヒント |
|---|---|
| 復習で読み直すべきセッションが多すぎる | 「3つだけ選ぶ」のルールを死守。全部やろうとせず、深く1つを |
| 自分の言葉で説明が書けない | AIに「以下の概念を、私に教えるつもりで100字で説明して」と頼み、それを写経→改変する |
| 研修後、何から始めればいい? | まずは現場のSQLを1つ読む。「何をしているSQLか」を1文で言えるまで考える |
| 上司にSQLを聞きにくい | 「自分はここまで考えて、こう書いたが、合っているか」と聞けば、ほぼ100%教えてもらえる |
つまずきやすいポイント
| つまずきポイント | ヒント |
|---|---|
| 間違いを「ダメだった」で終わらせる | 「なぜ間違えたか」を①②③で分類するだけで、対処法が見えてくる |
| 研修終了で勉強も終了にする | 1週間以内に1本SQLを書くと記憶が定着しやすい。簡単なもので良い |
| 完璧主義になる | 「半分できれば合格」の気持ちで。残りは現場で覚える |