📖 テーマ設定
🔊 音声設定
1.2
1.0
1.0
▶️ 再生コントロール
🎵 BGM設定
0.3
🔔 効果音設定
0.3

Day 1 - 本日のサマリー: データを「読む」一日

概要

  • 日程: Day 1
  • 本日のゴール: postgresql-sandboxに自力で接続し、SELECT文・WHERE句・集約関数を組み合わせて、ビジネス上のシンプルな問い(例:「営業部の従業員一覧」「部署別の平均給与」)にSQLで答えられる
  • 対応する到達目標: No.1(RDBの基本概念)、No.2(環境構築と基本操作)、No.3(SELECT文によるデータ取得)
  • 本日の成果物: postgresql-sandboxが手元で起動・接続できている状態 + SELECT/WHERE/集約を組み合わせた自作SQLクエリ集(10本程度)

🧭 今日の航海図(なぜ・なにを・どこへ)

今日は、明日「データを変える・つなぐ・設計する」ために必要な「読む力」を一気に身につけます。データベースという入れ物がどんな構造をしていて、psqlでどう話しかけ、SELECT/WHERE/GROUP BYでどんな問いに答えられるか——この3点を体に通すのが今日の目的です。順序は「全体像(DBとは)→ 環境を動かす → 概念整理 → SELECTを書く → 条件指定 → 集計」と、必ず手を動かす実習を挟みながら進みます。今日が終わる頃には、「営業部の社員を給与順で出して」と言われたら数十秒でSQLが書ける状態になります。

⏱ 今日の流れ

時間 セッション 形式 このセッションで手に入るもの
9:00-9:30 S01 オリエンテーション&DBとは 座学 2日間の地図と「AIと学ぶ」スタイルの共有
9:30-10:15 S02 PostgreSQL環境構築 実習 「動いた!」体験:sandboxが起動し、psqlでつながった状態
10:15-10:25 休憩
10:25-10:55 S03 RDBの基本概念 座学 テーブル・主キー・外部キーの言葉で会話できる
10:55-11:40 S04 psqlでデータを覗く 実習 7テーブルの構造とサンプルデータが頭に入った状態
11:40-12:00 S05 データ型の基礎 座学 数値/文字列/日付/論理の使い分け基準
12:00-13:00 昼休憩
13:00-13:30 S06 SELECT文の基本 座学 射影(列選び)と選択(行選び)の対比
13:30-14:15 S07 SELECT・WHERE演習 実習 5本の単一条件SELECTを自分の手で書いた経験
14:15-14:25 休憩
14:25-14:55 S08 並び替えとパターン検索 座学 ORDER BY / LIKE / IN / BETWEENの使い分け
14:55-15:40 S09 複合条件クエリ演習 実習 AND/ORを組み合わせた実践クエリ5本
15:40-15:50 休憩
15:50-16:20 S10 集約関数とGROUP BY/HAVING 座学 「行をまとめる」発想と集計の文法
16:20-17:00 S11 集計演習&Day1まとめ 実習 部署別平均給与・カテゴリ別商品数・月別注文件数を自作

午前は「環境を動かす+構造を掴む」、午後は「読みのスキルを段階的に積み上げる」リズムです。30分の座学→必ず手を動かす実習、というセットが繰り返されるので、座学で分からなかった部分も次の実習で必ず触れます。

🎯 今日の成果物

夕方には、以下が手元にある状態を目指します。

  • 自分のPCでpostgresql-sandboxが起動し、docker exec -it postgres-sandbox psql -U postgres -d sandbox でいつでも接続できる
  • psqlのメタコマンド(\dt \d \l \q)を見ずに使える
  • 自分で書いた10本程度のSELECTクエリ(単一条件、複合条件、集計を含む)
  • 例:以下のような「営業部社員を給与降順」のクエリが、サンドボックスで動く状態
SELECT first_name, last_name, salary
FROM employees
WHERE department_id = 1
ORDER BY salary DESC;

「クエリが動いた」という小さな成功体験を1日で20回くらい積み重ねるのが、今日の本当のゴールです。

⚠️ 今日のつまずきポイント

今日特に多くの人が引っかかる場所を、予告として挙げておきます。詰まっても普通なので、安心してください。

  • 文字列の囲み方:SQLは'シングルクォート'が正解。プログラミング言語のクセでダブルクォートを使うとエラーになります(S06, S07)
  • NULL の比較WHERE name = NULL は動かない。IS NULL を使う(S06で予告/Day2で詳細)
  • GROUP BYと SELECT列のルール:「グループ化していない列はSELECTに書けない」エラーは集計時の鉄板ハマりポイント(S10, S11)
  • AND/ORの優先順位:ANDがORより強い。迷ったら必ず括弧で囲む(S09)
  • 環境構築でDocker Desktop未起動:クジラアイコンが常駐しているか最初に確認(S02)

どれもAIに「こういうエラーが出た、自分はこう書いた」と仮説を添えて聞けば、ほぼ5分で解決します。

🤖 今日のAIの使いどころ

今日大事にしたいのは「まず自分で書く → 詰まったところだけ聞く」の順序です。最初からAIに丸投げすると、研修後に何も残りません。具体的な聞き方の例:

  • ERROR: column "salary" does not exist と出た。自分は SELECT salary FROM employees と書いた。何が間違い?」
  • '山田' で検索しても0件だった。テーブルには『山田』があるはず。何を確認すれば良い?」
  • GROUP BY をどう書けばいいか分からない。『部署別の平均給与』を出したい。考え方を教えて(コードは最後)」

「コードは最後」「自分の仮説を先に書く」——この2つだけ守れば、AIは最強の学習パートナーになります。

読み上げを開始します...

AIに質問する