SQL(SELECT文・結合)とは?
SQL(SELECT文・結合)とは、関係データベースを操作するための問い合わせ言語。データの検索にはSELECT文を用い、WHERE句で条件を絞り込み、複数の表を組み合わせて扱うにはJOIN(結合)を使う。JOINには内部結合(両方の表に一致するデータだけを対象とする)や外部結合(一方に存在すれば他方が無くても結果に含める)などの種類がある。
ITサービスマネージャ試験の過去問では1回出題されています。
えすきゅーえる
SQL(SELECT文・結合)の意味
関係データベースを操作するための問い合わせ言語。データの検索にはSELECT文を用い、WHERE句で条件を絞り込み、複数の表を組み合わせて扱うにはJOIN(結合)を使う。JOINには内部結合(両方の表に一致するデータだけを対象とする)や外部結合(一方に存在すれば他方が無くても結果に含める)などの種類がある。
SQL(SELECT文・結合)の具体例
「SELECT 社員名 FROM 社員表 INNER JOIN 部署表 ON 社員表.部署コード = 部署表.部署コード WHERE 部署表.部署名 = '営業部'」のように書くと、営業部に所属する社員名の一覧を取得できる。
SQL(SELECT文・結合)は試験でどう引っ掛けられる?
内部結合(INNER JOIN、両表に一致するデータのみ)と外部結合(LEFT/RIGHT/FULL OUTER JOIN、一致しない側もNULLを補って結果に含める)の違いが問われやすい。
SQL(SELECT文・結合)と関連する用語
SQL(SELECT文・結合)が出た過去問
“社員”表から、役割名がプログラマである社員が3人以上所属している部門の部門名を取得するSQL文はどれか。ここで、実線の下線は主キーを表す。 社員(社員番号, …
正解:SELECT 部門名 FROM 社員 WHERE 役割名 = 'プログラマ' GROUP BY 部門名 HAVING COUNT(*) >= 3
要点:行の条件はWHERE、集約後の条件はHAVINGに書く
SQLの評価順は、WHEREで行を絞り込み、GROUP BYで集約し、HAVINGで集約結果を絞り込む、という順序になる。したがって役割名の条件は行単位なのでWHEREに、人数3人以上という集約後の条件はHAVING COUNT(*)>=3に書く必要がある。集約関数をWHEREに書くことはできず、HAVINGをWHEREより前に置くこともできない。
出典:平成30年度 秋期 ITサービスマネージャ試験 am2 問21(IPA)
最終更新:2026-08-25/解説は資格暗記が独自に作成しています。 過去問の出典は各問題に記載のとおりです。