データベースの基礎

商品表に、(商品名, 価格)が(ペン, 120)、(ノート, 250)、(消しゴム, 80)、(ファイル, 300)、(定規, 150)の5行がある。SELECT 商品名 FROM 商品 WHERE 価格 >= 150 ORDER BY 価格 DESC の結果として、返される行を順に並べたものはどれか。

  1. A定規、ノート、ファイル
  2. Bファイル、ノート
  3. 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行を、価格の大きい順に並べた結果です。
この分野を解く 分野ページへ

関連する計算ツール

データベースの基礎の参考書を探す PR

Amazonの検索結果へのリンクです。Amazonのアソシエイトとして、半導体教室は適格販売により収入を得ています。

データベースの基礎のほかの問題

  1. 社員表の部署の列に、上の行から順に 営業、開発、営業、総務、開発、営業 の値が入っている(全6行)。SELECT DISTINCT 部署 FROM 社員 の結果は何行になるか。
  2. SQLで DELETE FROM 社員 を、WHERE句を付けずに実行したときの結果として正しいものはどれか。
  3. 試験表の点数の列に、80、NULL、70、90 の4つの値がある(NULLは未受験を表す)。SELECT AVG(点数) FROM 試験 の結果はどれか。
  4. 成績表の点数の列に、50、NULL、70、NULL、90、30 の6つの値がある。SELECT COUNT(*), COUNT(点数), AVG(点数) FROM 成績 の結果を順に並べたものはどれか。
  5. 社員表(社員番号, 部署, 給与)から、部署ごとの平均給与が300以上の部署と、その平均給与を求めたい。正しいSQL文はどれか。