コピペした SQL を直しながら使っている状態から抜けるコースです。SELECT と WHERE、NULL の三値論理、JOIN と LEFT JOIN の違い、ウィンドウ関数、トランザクションとロック、正規化、インデックスと EXPLAIN まで。全30レッスンで「なぜその結果になるのか」を説明できるところまで進みます。
全30レッスンを6つの章に分けています。第1章から順に進めるのがおすすめですが、 いま困っている範囲だけを拾い読みしてもかまいません。 ※ SQL はブラウザ内で実行できません。手元に MySQL 8.4(または 8.0)を入れて、第1回のサンプルデータを読み込んで試してください。
接続して、データベースとテーブルを作り、行を入れて取り出すところまで。ここで作るサンプルデータを、第30回まで同じものとして使い続けます。
列の選び方と別名、WHERE の条件、LIKE のパターン、そして NULL。「= NULL では引っかからない」の理由を三値論理まで降りて確かめ、最後は並び替えとページネーションへ。
COUNT が NULL を数えない話から GROUP BY と HAVING へ。そして JOIN。INNER と LEFT の違い、ON と WHERE を取り違えたときに何が起きるか、自己結合、サブクエリ、CTE。
ウィンドウ関数で「グループごとの順位」を1文で書き、日付と時間の落とし穴を踏み、INSERT の実践と、UPDATE・DELETE を安全に流す手順へ。
トランザクションとロック、デッドロックの読み方。そしてデータ型の選び方、主キーと外部キー、正規化。あとから直しにくいところをまとめて扱います。
インデックスが効く条件と効かない条件、EXPLAIN の読み方、文字コードと照合順序、権限とバックアップ、そしてアプリから接続するところまで。最後に設計から実装まで通します。
全30レッスンを終えたら、同じ題材を PostgreSQL で見る データベース基礎(PostgreSQL)へ。アプリ側から使うなら Django 入門や FastAPI 入門が続きです。メンバーシップで全コースが解放されます。