- 期間: 2日間(1日7時間 × 2日 = 14時間)
- 対象者: 新入社員(プログラミング経験不問)
- 前提知識: 基本的なPC操作、ターミナル/コマンドラインに触れた経験があると望ましい
- 学習形式: AI協働型(生成AIを学習パートナーとして対話しながら進める)
- 学習環境: postgresql-sandbox (Docker + psql)
SQL基礎(PostgreSQL) スケジュール
到達目標と対応セッション
| No. | 到達目標 | 対応Day |
|---|---|---|
| 1 | リレーショナルデータベースの基本概念を説明できる | Day1(S01, S03) |
| 2 | PostgreSQLの環境構築と基本操作ができる | Day1(S02, S04, S05) |
| 3 | SELECT文によるデータ取得ができる | Day1(S06〜S11) |
| 4 | データの追加・更新・削除ができる | Day2(S01, S02) |
| 5 | テーブルの結合を理解している | Day2(S03, S04) |
| 6 | テーブルの設計と作成ができる | Day2(S09, S10) |
| 7 | インデックスの役割と使い方を理解している | Day2(S11) |
| 8 | トランザクションの概念を理解している | Day2(S11) |
| 9 | サブクエリとビューを活用できる | Day2(S07, S08) |
Day 1(1日目)「データを読む」
本日のゴール:postgresql-sandboxに自力で接続し、SELECT文・WHERE句・集約関数を組み合わせて、ビジネス上のシンプルな問い(例:「営業部の従業員一覧」「部署別の平均給与」)にSQLで答えられる
対応する到達目標:No.1, No.2, No.3
本日の成果物:postgresql-sandbox が手元で起動し、psqlから接続できている状態 + SELECT文・WHERE句・集約関数を組み合わせた自作SQLクエリ集(10本程度)
セッション1 [9:00-9:30] 座学
セッション名:オリエンテーション&データベースって何だろう
ゴール:研修の全体像と「なぜSQLを学ぶか」を自分の言葉で1分で説明できる
対応する学習内容:データベースの基本概念と種類
ポイント:本研修のゴール、AI協働の学び方、データベースが生活のどこにあるかの実感
学習形式:対話型解説
セッション2 [9:30-10:15] 実習
セッション名:PostgreSQL環境構築(Docker+postgresql-sandbox)
ゴール:docker-composeでpostgresql-sandboxを起動し、psqlコマンドで接続して \dt でテーブル一覧を表示できる
対応する学習内容:PostgreSQLの特徴と環境構築、psqlコマンドラインツールの基本操作
ポイント:「動いた!」の小さな成功体験、Docker/gitの前提コマンドの確認、トラブル時のAI活用
学習形式:ハンズオン実習(AIサポートあり)
[10:15-10:25] 休憩
セッション3 [10:25-10:55] 座学
セッション名:リレーショナルデータベースの基本概念
ゴール:テーブル、レコード、カラム、主キー、外部キーをそれぞれ身近な例で説明できる
対応する学習内容:リレーショナルデータベースの特徴(RDBMS)
ポイント:Excelの表との対比、主キーと外部キーが「リレーション」を作る仕組み
学習形式:対話型解説
セッション4 [10:55-11:40] 実習
セッション名:psqlでサンドボックスのデータを覗いてみる
ゴール:psqlの基本コマンド(\dt \d \l \q)と簡単なSELECT文で、サンドボックス内の7テーブルそれぞれの構造とデータ件数を確認できる
対応する学習内容:psqlコマンドラインツールの基本操作、データベースとスキーマの作成・管理
ポイント:メタコマンドと SQL の違い、テーブル間のリレーションを実データで確認
学習形式:ハンズオン実習(AIサポートあり)
セッション5 [11:40-12:00] 座学
セッション名:データ型の基礎
ゴール:数値型・文字列型・日付型・論理型それぞれの代表例と用途を区別できる
対応する学習内容:データ型(数値型、文字列型、日付型、論理型等)
ポイント:「VARCHAR(100)」のような型指定の意味、サンドボックスのテーブルで使われている型の読み解き
学習形式:対話型解説
[12:00-13:00] 昼休憩
セッション6 [13:00-13:30] 座学
セッション名:SELECT文の基本(射影と選択)
ゴール:SELECT/FROM/WHERE の役割をそれぞれ説明し、最も単純なSELECT文を書ける
対応する学習内容:SELECT文の基本(射影、選択、並び替え)
ポイント:「射影」=列を選ぶ、「選択」=行を選ぶ、という対比
学習形式:対話型解説
セッション7 [13:30-14:15] 実習
セッション名:SELECT・WHERE句で人を探す演習
ゴール:employees/products テーブルに対して、列指定・等価条件・大小比較を組み合わせたSELECT文を5本書ける
対応する学習内容:SELECT文の基本、WHERE句と演算子(比較)
ポイント:シングルクォートと文字列、数値リテラルの違い、AIに「なぜこの結果になったか」を聞く練習
学習形式:ハンズオン実習(AIペアプログラミング)
[14:15-14:25] 休憩
セッション8 [14:25-14:55] 座学
セッション名:並び替えとパターン検索(ORDER BY/LIKE/IN/BETWEEN)
ゴール:ORDER BY、LIKE、IN、BETWEEN それぞれの使いどころを使い分けの観点で説明できる
対応する学習内容:SELECT文の並び替え、WHERE句と演算子(論理、LIKE、IN、BETWEEN)
ポイント:LIKE のワイルドカード(% _)の挙動、IN と OR の関係、BETWEEN の境界値
学習形式:対話型解説
セッション9 [14:55-15:40] 実習
セッション名:複合条件クエリ演習
ゴール:「給与40万以上の営業部社員を給与降順で並べる」のような複合条件のクエリを5本書ける
対応する学習内容:WHERE句と演算子、並び替え
ポイント:AND/OR の優先順位、ORDER BY の ASC/DESC
学習形式:ハンズオン実習(AIペアプログラミング)
[15:40-15:50] 休憩
セッション10 [15:50-16:20] 座学
セッション名:集約関数とGROUP BY/HAVING
ゴール:COUNT/SUM/AVG/MAX/MIN それぞれの意味を例示でき、GROUP BY と HAVING の役割を WHERE と比較して説明できる
対応する学習内容:集約関数(COUNT、SUM、AVG、MAX、MIN)、GROUP BYとHAVING句
ポイント:「行をまとめる」とはどういうことか、WHEREとHAVINGの違い(実行順序)
学習形式:対話型解説
セッション11 [16:20-17:00] 実習
セッション名:集計クエリ演習&Day1まとめ
ゴール:「部署別の平均給与」「カテゴリ別の商品数」「月別の注文件数」のような集計クエリを3本書き、Day1の学習内容を1分で振り返れる
対応する学習内容:集約関数、GROUP BY、HAVING
ポイント:集計時に表示する列の制約、Day1全体の振り返り
学習形式:ハンズオン実習+振り返り
Day 2(2日目)「データを変える・つなぐ・設計する」
本日のゴール:データの追加・更新・削除と、テーブル結合・サブクエリを使って、現実のビジネス課題(受注分析等)に答えるSQLを書ける/自分でテーブル設計を一つ完成させる
対応する到達目標:No.4, No.5, No.6, No.7, No.8, No.9
本日の成果物:自分で設計・作成したテーブル定義1セット、結合・サブクエリを含む実践クエリ集、SQL基礎研修の確認テストの自己採点結果
セッション1 [9:00-9:30] 座学
セッション名:データの追加・更新・削除(INSERT/UPDATE/DELETE)
ゴール:INSERT、UPDATE、DELETE 各文の構文と「WHERE忘れ」の危険性を説明できる
対応する学習内容:INSERT文、UPDATE文、DELETE文
ポイント:DML(データ操作言語)の意味、WHEREのないUPDATE/DELETEの事故事例
学習形式:対話型解説
セッション2 [9:30-10:15] 実習
セッション名:データ操作演習
ゴール:新規部署の追加、特定社員の給与更新、テスト用レコードの削除を順番に実行し、それぞれ実行前後でSELECTにより差分を確認できる
対応する学習内容:INSERT/UPDATE/DELETE
ポイント:実行前にSELECTで対象行を確認する習慣、トランザクション(BEGIN/ROLLBACK)を予告として使う
学習形式:ハンズオン実習(AIペアプログラミング)
[10:15-10:25] 休憩
セッション3 [10:25-10:55] 座学
セッション名:テーブル結合の基礎(INNER JOIN/LEFT JOIN)
ゴール:INNER JOIN と LEFT JOIN の違いを「マッチしない行をどう扱うか」で説明し、適切に使い分けられる
対応する学習内容:テーブル結合(INNER JOIN、LEFT JOIN、RIGHT JOIN、FULL JOIN)、自己結合と複数テーブル結合
ポイント:ON句の意味、JOINの結果集合のイメージ、RIGHT/FULLの位置づけ
学習形式:対話型解説
セッション4 [10:55-11:40] 実習
セッション名:JOIN演習(顧客と注文をつなぐ)
ゴール:employees×departments、customers×orders×order_items×products を結合する SQL を 3 本書け、INNER と LEFT の結果差を説明できる
対応する学習内容:テーブル結合、自己結合と複数テーブル結合
ポイント:3テーブル以上のJOIN、エイリアスの使い方、JOINでよく出る重複・件数増の罠
学習形式:ハンズオン実習(AIペアプログラミング)
セッション5 [11:40-12:00] 座学
セッション名:NULL値の扱いとCASE式
ゴール:NULLが「未知の値」であり通常の比較で扱えないことと、CASE式による条件分岐の書き方を説明できる
対応する学習内容:NULL値の扱いと注意点、CASE式による条件分岐
ポイント:= NULL ではなく IS NULL、COALESCE、CASE WHEN の構文
学習形式:対話型解説
[12:00-13:00] 昼休憩
セッション6 [13:00-13:30] 実習
セッション名:NULL/CASE演習
ゴール:CASE式で給与を「高・中・低」に分類するクエリ、NULLを含むデータを正しく扱うクエリをそれぞれ書ける
対応する学習内容:NULL値、CASE式
ポイント:実務で「未入力」をどう表現するか、CASEの結果に名前を付けるAS
学習形式:ハンズオン実習(AIペアプログラミング)
セッション7 [13:30-14:00] 座学
セッション名:サブクエリとビュー
ゴール:スカラー/インライン/EXISTS型サブクエリの違いを例示でき、ビューの目的を1文で説明できる
対応する学習内容:サブクエリ(スカラー、インライン、EXISTS)、ビューの作成と活用
ポイント:「クエリの結果を別のクエリの入力にする」発想、ビュー=名前付き保存クエリ
学習形式:対話型解説
セッション8 [14:00-14:30] 実習
セッション名:サブクエリ・ビュー演習
ゴール:「平均給与より高い社員」のクエリと、よく使う集計を呼び出せるビュー1つを作成できる
対応する学習内容:サブクエリ、ビュー
ポイント:JOINで書けることはJOINで、サブクエリでないと書けないケース、CREATE VIEW
学習形式:ハンズオン実習(AIペアプログラミング)
[14:30-14:40] 休憩
セッション9 [14:40-15:10] 座学
セッション名:テーブル設計と制約(CREATE TABLE)
ゴール:PRIMARY KEY/FOREIGN KEY/NOT NULL/UNIQUE/CHECK 各制約の役割を説明し、簡単なテーブル設計を提案できる
対応する学習内容:テーブルの作成(CREATE TABLE)、制約(PRIMARY KEY、FOREIGN KEY、NOT NULL、UNIQUE、CHECK)
ポイント:制約は「データの嘘を防ぐルール」、SERIAL/DEFAULT、外部キーで参照整合性を守る
学習形式:対話型解説
セッション10 [15:10-15:40] 実習
セッション名:テーブル作成演習(社員研修管理を例に)
ゴール:「研修コース」「受講履歴」テーブルを、制約付きで自分で設計・CREATE TABLEし、サンプルデータを挿入できる
対応する学習内容:CREATE TABLE、制約
ポイント:データ型の選択、PK/FK の設定、命名規則
学習形式:ハンズオン実習(AIペアプログラミング)
セッション11 [15:40-16:00] 座学
セッション名:インデックスとトランザクション
ゴール:インデックスを「索引」のたとえで説明し、ACID 特性と BEGIN/COMMIT/ROLLBACK の流れを説明できる
対応する学習内容:インデックスの仕組みと作成、トランザクション管理(BEGIN、COMMIT、ROLLBACK)、ACID特性の理解
ポイント:索引のたとえ、トランザクション=「ひとまとまりの仕事」、ROLLBACKによる安心感
学習形式:対話型解説
[16:00-16:10] 休憩
セッション12 [16:10-16:40] 演習
セッション名:確認テスト
ゴール:全範囲を網羅する15問の確認テストを解き、現在の到達度を自己採点で把握できる
対応する学習内容:研修全範囲
ポイント:分からなくても飛ばさず「自分の理解の限界」をメモに残す、AIには採点後に頼る
学習形式:演習(個人作業)
セッション13 [16:40-17:00] 演習
セッション名:不正解項目の復習&研修まとめ
ゴール:誤答した項目を3つ選び、該当セッションを読み直して「次に同じ問題が出たら正解できる説明」を自分の言葉で書ける
対応する学習内容:研修全範囲の総復習
ポイント:間違えたところこそが財産、研修後の学習計画(次に学ぶべきこと)
学習形式:演習+振り返り