主キーとNULL制約

SQL入門 / 全 5

作成品質の確認

全チェックの通過状況

スライド 4 / 4枚、チェック 5 / 5項目が通過

全項目通過・次へ進めます

スライドごと

完成後の5チェック

本文・学習内容

本文・演習・starter/solution・次クイズ・前後lesson・後続NULL lessonを再監査。4枚を主キー契約、キー選択、NULL許容設計、IS NULL演習の各1仕事へ分け、JOIN/FK、複合キー実装、COALESCE、COUNT/集計、正規化、indexを先取りしていない。

通過

ソース・課題との接続

exact lessonKeyから4枚のauthored deckと各named panelへ実経路で到達。live loaderのstarterは5行で公開expectedResultに不一致、模範SQLはid 2・4の4列2行に一致。hiddenSchema/hiddenExpectedResultは双方NULLで片側脱落はないが、直書き耐性の追加はproduction教材データ側の非blocking hardening backlog。

通過

見た目・操作

SQL専用10/10とgeneric mobile 1/1を通過。4枚desktop、実lesson開閉/再表示、print全枚、library、320/360/393pxの全枚開始/縦末尾、page 4の結果表横右端を別担当が原寸目視。修正後は文字切れ・衝突・不可逆crop・操作不能がなくP0/P1/P2なし。

通過

再利用・パターンマスター

lookup-table、compare-two、editor-resultへ各枚ちょうど1件分類。本番と単体部品は同じLookupTablePanel、Pane、CodePanel、ResultTablePanelを直接使用し、fallback・孤立部品・新規renderer/type/asset/一品物はない。

通過

型・テスト・回帰

前後lessonと後続NULL境界、exact deck内容、共有ResultTablePanel DOM契約、全画面QAを再確認。共有表の代表として5列、長いASCII、15行、result-focusを320px右端まで実測・原寸確認し、不要scrollや最終列欠落なし。repo-wide tscは既存大量errorで不合格だが対象5ファイルのerrorは0件。

通過

未登録ユーザーだけを取り出す

phone = NULL は TRUE ではなく UNKNOWN になり、WHERE には残りません。NULL を探すときは IS NULL を使います。

SELECT id, name, email, phone
FROM users
WHERE phone IS NULL
phone IS NULL未登録だけを残す
ORDER BY id ASC;
ORDER BY id ASCid の昇順

実行結果

idnameemailphone
2鈴木suzuki@example.comNULL
4高橋takahashi@example.comNULL

2件:id=2、id=4。phone はどちらも NULL です。

ORDER BY id ASC まで書いて、期待される2行の順序を固定します。

4 / 5

このスライドが付いているレッスンを開く