SELECT文・射影と選択とは?セレクトぶん・しゃえいとせんたく
SELECT文は関係データベースへ問い合わせるSQLの命令で、そのうち取り出す列を並べる部分が関係代数でいう射影、WHERE句で行を絞る部分が選択にあたる。午前I(令和8年度から科目A-1)で問われるのは書き方そのものではなく、関係代数の演算名とSQLの句の対応、とりわけSQLの既定の動きが関係代数の定義どおりにはならない点である。
最終更新:2026-10-07
この語が出る過去問を解く →背景
午前I(科目A-1)のデータベースは、応用情報と同じレベル3の範囲から2問前後しか出ない。受験者の専門はプロジェクトマネジメント・監査・ネットワークなどに散らばっており、SQLを日常的に書かない人が多数派になる。そのため出題は構文の細部を避け、「射影と書かれた操作をSQLではどう書くか」「ビューの定義で何が書けて何が書けないか」という、言葉と機能の対応に寄る。自分で書けることよりも、書いた結果がどうなるかを言えることが求められる。
具体例
関係R(ID, A, B, C)のA, Cへの射影と同じ結果をSQLで得たいときは、SELECT DISTINCT A, C FROM T と書く。射影の結果は集合として扱われ重複する組が取り除かれるのに対し、SQLの既定はALLで重複行をそのまま返すためである。ビューの側では、CREATE VIEW の中で列に別名を付けたり列名リストを指定したりできるので、基の表と異なる列名のビューを定義できる。
試験での引っ掛け
DISTINCTの位置にORDER BYを置いた誤答が定番だが、ORDER BYは並べ替えの指定であって重複は消さない。REFERENCESは参照制約の定義に使う語でSELECT句には書けず、ALLは既定の動きなので書いても射影の結果には一致しない。ビューの設問では「基の表から指定した列を抜き出すようには定義できるが、行を抜き出すようには定義することはできない」という誤答が典型で、実際にはWHERE句による行の絞り込みも結合も和集合もビュー定義に書ける。ただし結合で定義したビューは、どの行を更新すべきかが一意に定まらないため更新に制約が付く——これは「書けるか」とは別の論点なので混ぜない。
関連用語
出た過去問
問題文で直接問われたものと、解説の中で触れられたものが含まれます。
出典:令和7年度 秋期 高度試験 午前Ⅰ 問9(IPA)解説で登場
関係データベースのビューに関する記述のうち、適切なものはどれか。
正解:ビューの列名は、基の表の列名と異なる名称で定義することができる。
要点:ビューは仮想表。列名を基の表と変えて定義できる
ビューを定義するSELECT文では列に別名を付けたり、CREATE VIEWで列名リストを指定したりできるため、基の表と異なる列名にできる。ビューは仮想表であり、射影・選択・結合・和集合など問合せで表現できる操作を自由に定義できる。
出典・参考
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。