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