応用情報暗記無料で始める

SELECT文・射影と選択とは?セレクトぶん・しゃえいとせんたく

SELECT文・射影と選択とは、関係データベースの問合せの基本操作と、その関係代数上の呼び名。列を絞り込む操作を射影、条件に合う行を絞り込む操作を選択と呼び、SELECT文は射影(SELECT句)と選択(WHERE句)に結合・集約を組み合わせて必要なデータだけを取り出す。集約を伴う場合、行を絞るWHEREはグループ化の前、グループを絞るHAVINGはグループ化の後に評価される、という順序が出題の中心になる。

最終更新:2026-10-06

試験情報

応用情報技術者試験の過去問では10回出題され、ほかに2問の解説で触れられています(2016年度〜2024年度)。

応用情報技術者試験の頻出用語/テクノロジ系

別名:SELECT、射影(Projection)、選択(Selection)、SELECT文、射影と選択

この語が出る過去問を解く →

背景

初期のデータ操作は、どのファイルをどの順に読み、どう突き合わせるかという手順そのものをプログラムに書いていた。そのため格納方法を変えるだけで全プログラムを直すことになり、データの独立性が保てなかった。関係代数は「何が欲しいか」を集合の演算として表す枠組みで、SQLはその上に載る非手続き型の言語である。だからこそ、索引を使うかどうかといった取り出し方はDBMSの最適化に委ねられる。

具体例

「SELECT 商品名, 価格 FROM 商品 WHERE 在庫数 > 0」は、商品名と価格の2列への射影と、在庫数が正である行の選択を組み合わせている。PostgreSQLやMySQLでEXPLAINを付けて実行すると、同じ結果でも索引を使うか全表走査になるかが分かり、WHERE句の書き方が実行計画を左右することを確認できる。

試験での引っ掛け

射影が列の絞り込み、選択が行の絞り込みで、日常語の「選択」の語感と逆に覚えやすい。WHEREとHAVINGは評価される順序が違い、集約関数はWHERE句には書けない。またSELECT文は既定で重複行を除かないため、関係代数どおりの集合として扱いたい場合はDISTINCTが必要になる点も狙われる。

関連用語

出た過去問

問題文で直接問われたものと、解説の中で触れられたものが含まれます。

解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。

この語が出る過去問を解く →

試験での特徴
  • 試験では10回出題(2016年度〜2024年度)
  • 分野:テクノロジ系
  • 射影が列の絞り込み、選択が行の絞り込みで、日常語の「選択」の語感と逆に覚えやすい。