診断士RoadMap 論点解説アプリを無料で使う

SQLの基礎(SELECT・JOIN)

経営情報システム抽出・集計・結合の基本構文が分かる

要点

SQLは、関係データベースの定義や操作を行うための言語です。検索の中心となるSELECT文では、SELECTに取得する列、FROMに対象表、WHEREに行を絞る条件を記述します。NULLは値が存在しない状態なので、等号ではなくIS NULLやIS NOT NULLで判定します。

集計ではCOUNT、SUM、AVGなどの集約関数を使い、GROUP BYで同じ値を持つ行をグループ化します。集計前の行を絞るのがWHERE、集計後のグループを絞るのがHAVINGです。複数表の結合では、INNER JOINが結合条件に一致する行だけを返し、LEFT OUTER JOINは左表の全行と右表の一致行を返します。一致しない側の列にはNULLが入ります。

試験では、SQLを実行した結果の行数や表示内容を問う形が中心です。結合条件がないと意図しない直積になり、外部結合後に右表の列をWHEREで比較すると、NULLの行が除かれて内部結合に近い結果になる点に注意します。FROMとJOINで行の組合せを作り、WHERE、集約、HAVING、SELECTの順に結果を追うと判断しやすくなります。

試験で問われるポイント

確認問題

顧客表customers(id, name)と受注表orders(id, customer_id)がある。一度も受注していない顧客だけを抽出するSQLとして最も適切なものはどれか。

正解: イ
正解は2番目。LEFT JOINは顧客表の全行を残し、対応する受注がない行では受注表側の列がNULLになるため、o.id IS NULLで未受注顧客だけを選べます。INNER JOINとCROSS JOIN後の一致条件では受注のない顧客が残りません。IS NOT NULLは、反対に受注がある顧客を抽出します。

続きはアプリで — この論点の過去問と解説、AI演習へ

経営情報システムの過去問を年度別に解説付きで演習。触って学ぶ体感型解説、忘却曲線ベースの復習計画も無料で始められます。

診断士RoadMapを無料で始める
登録だけなら無料・プレミアムは月額¥500・いつでも解約可

関連する論点

同じ科目の論点