データベースの基礎
商品表に、(商品名, 価格)が(ペン, 120)、(ノート, 250)、(消しゴム, 80)、(ファイル, 300)、(定規, 150)の5行がある。SELECT 商品名 FROM 商品 WHERE 価格 >= 150 ORDER BY 価格 DESC の結果として、返される行を順に並べたものはどれか。
- A定規、ノート、ファイル
- Bファイル、ノート
- Cファイル、ノート、定規
答えと解説を見る
正解:C. ファイル、ノート、定規
WHERE 価格 >= 150 で、価格が150以上の行だけが選ばれます。150ちょうどの定規も含まれるので、選ばれるのはノート(250)、ファイル(300)、定規(150)の3行です。次に ORDER BY 価格 DESC で、価格の大きい順(降順)に並べ替えるので、ファイル(300)、ノート(250)、定規(150)の順になります。ORDER BY で ASC を指定するか、何も指定しないと、小さい順(昇順)になります。ORDER BY を付けない場合は、結果の行の順番は保証されません。SELECT の後には取り出す列(ここでは商品名)を、FROM の後には表を、WHERE の後には行を選ぶ条件を書きます。
- A. 価格の小さい順(昇順)に並べた結果で、DESCの指定と逆です。
- B. 「>=」を「>」と取り違え、150ちょうどの定規を除いた結果です。
- C. 正しい。150以上の3行を、価格の大きい順に並べた結果です。