問題
選択肢
- 1SELECT * FROM 社員 WHERE 部署コード = 'D01'
- 2SELECT * FROM 社員 HAVING 部署コード = 'D01'
- 3SELECT ALL 社員 WHERE 部署コード = 'D01'
- 4GET * FROM 社員 WHERE 部署コード = 'D01'
正解
1. SELECT * FROM 社員 WHERE 部署コード = 'D01'
詳しい解説を見る解説を閉じる
解説
行の抽出条件はWHERE句で指定する。SELECT文の基本構文は「SELECT 列名 FROM 表名 WHERE 条件」であり、全列を表す*を用いて部署コードがD01の行を取り出す「SELECT * FROM 社員 WHERE 部署コード = 'D0…」が正解である。HAVING句は、GROUP BYでグループ化した後の集計結果(SUMやCOUNTなど)に条件を付けるためのものであり、グループ化を伴わない単純な行の絞込みには用いない。「SELECT ALL 社員 WHERE 部署コード = 'D01'」はSELECTの直後に列指定ではなく表名を置いており構文として成立せず、GETというSQL命令は存在しない。「WHEREはグループ化前の行に対する条件、HAVINGはグループ化後の集計値に対する条件」という使い分けは、SQL問題で最も頻繁に問われるポイントである。
一問一答
科目A 180問+科目B 60問