経営情報システム ③初級編_データベースとSQL6問〜10問

問6:商品テーブルから全ての列・全ての行のデータを取得するSQLとして最も適切なものはどれか。

  • A:GET ALL FROM 商品テーブル
  • B:FETCH * FROM 商品テーブル
  • C:SELECT * FROM 商品テーブル
  • D:SHOW ALL 商品テーブル
  • E:READ FROM 商品テーブル WHERE ALL
【第6問:正解と解説】

正解:C
【解説】
・A:不適切:「GET」はSQLの標準的なデータ取得命令ではありません。取得操作はSELECTを使用します。
・B:不適切:「FETCH」はカーソルで行を取得する際などに使われますが、全データを取得する基本構文はSELECT文です。
・C:適切:SELECT * FROM テーブル名 は全ての列(*はワイルドカードで全列を意味)・全ての行を取得するSQLの基本構文です。
・D:不適切:「SHOW」はMySQLなどでテーブル一覧を表示するために使われる命令であり全データ取得のための標準SQL構文ではありません。
・E:不適切:SQLの構文として「WHERE ALL」という記述は標準的ではありません。全行取得にはWHERE句を省略します。


問7:社員テーブルから部署が「営業部」の社員データのみを取得したい。SQLのWHERE句を使った適切な構文はどれか。

  • A:SELECT * FROM 社員テーブル WHERE 部署 = ‘営業部’
  • B:SELECT 部署=’営業部’ FROM 社員テーブル
  • C:FILTER 部署=’営業部’ FROM 社員テーブル
  • D:SELECT * FROM 社員テーブル HAVING 部署=’営業部’
  • E:SELECT * WHERE 部署=’営業部’ FROM 社員テーブル
【第7問:正解と解説】

正解:A
【解説】
・A:適切:SELECT * FROM テーブル名 WHERE 列名 = ‘値’ がWHERE句を使った行の絞り込みの基本構文です。WHEREで条件を指定することで特定の行のみを取得できます。
・B:不適切:SELECT句の中に条件式を書く構文は標準SQLでは機能しません。条件による絞り込みはWHERE句を使います。
・C:不適切:「FILTER」はSQLの標準的な絞り込み命令ではありません。
・D:不適切:HAVING句はGROUP BYによるグループ化後の集計結果に対する条件指定に使います。行の絞り込みはWHERE句を使うのが正しい用法です。
・E:不適切:SQLはSELECT→FROM→WHEREの順序で記述する必要があります。WHERE句がFROM句の前に来るのは構文エラーです。


問8:売上テーブルのデータを売上金額の大きい順(降順)に並べて取得するSQLとして最も適切なものはどれか。

  • A:SELECT * FROM 売上テーブル ORDER BY 売上金額 ASC
  • B:SELECT * FROM 売上テーブル SORT BY 売上金額 DESC
  • C:SELECT * FROM 売上テーブル ORDER BY 売上金額 DESC
  • D:SELECT * FROM 売上テーブル GROUP BY 売上金額 DESC
  • E:SELECT * FROM 売上テーブル WHERE 売上金額 DESC
【第8問:正解と解説】

正解:C
【解説】
・A:不適切:ASCは昇順(小さい順)を意味します。大きい順(降順)はDESCを指定します。
・B:不適切:「SORT BY」はSQLの標準的な並び替え命令ではありません。並び替えにはORDER BYを使用します。
・C:適切:ORDER BY 列名 DESC で降順(大きい順)に並び替えができます。DESCはDESCending(降順)の略です。昇順はASC(省略可能)です。
・D:不適切:GROUP BYはデータをグループ化する命令であり並び替えに使うものではありません。
・E:不適切:WHERE句は条件による行の絞り込みに使うものであり並び替えには使いません。


問9:売上テーブルから部門ごとの売上合計を計算したい。使うべきSQL句と関数の組み合わせとして最も適切なものはどれか。

  • A:WHERE句で絞り込みORDER BY句で並べ替える
  • B:DISTINCT句で重複を排除して集計する
  • C:LIMIT句で取得行数を制限して合計を求める
  • D:GROUP BY句でグループ化しSUM関数で合計を集計する
  • E:JOIN句でテーブルを結合して合計を計算する
【第9問:正解と解説】

正解:D
【解説】
・A:不適切:WHERE句は個々の行の絞り込みに使いORDER BY句は並び替えに使います。どちらもグループ単位の集計機能は持ちません。
・B:不適切:DISTINCT句は重複行の排除に使いますが、グループごとの合計計算には使いません。
・C:不適切:LIMIT句は取得する行数を制限するための句であり集計処理とは異なります。
・D:適切:GROUP BY句で指定した列ごとにデータをグループ化しSUM関数でグループごとの合計を算出できます。例:SELECT 部門, SUM(売上金額) FROM 売上テーブル GROUP BY 部門。
・E:不適切:JOIN句は複数のテーブルを結合するための句であり単一テーブル内のグループ別集計計算には直接は使いません。


問10:SQL文でGROUP BYを使って部門別に売上を集計した後、売上合計が100万円以上の部門のみを抽出するために使うべき句として最も適切なものはどれか。

  • A:WHERE句(GROUP BYの前に条件を指定)
  • B:ORDER BY句(並び替えで上位を絞る)
  • C:LIMIT句(取得行数を制限する)
  • D:DISTINCT句(重複を排除する)
  • E:HAVING句(グループ化後の集計結果に条件を指定)
【第10問:正解と解説】

正解:E
【解説】
・A:不適切:WHERE句はGROUP BYの前に適用されるため、グループ化後の集計値(合計・平均など)を条件に使うことはできません。集計値に条件を適用しようとするとエラーになります。
・B:不適切:ORDER BY句は並び替えに使い条件による行の絞り込みはできません。
・C:不適切:LIMIT句は取得する最大行数を制限するものであり集計値による条件絞り込みとは異なります。
・D:不適切:DISTINCT句は重複行の排除に使うものであり、グループ集計後の条件指定には使いません。
・E:適切:HAVING句はGROUP BY句によるグループ化の後に集計結果(SUM・COUNT・AVGなど)に対して条件を指定するための句です。例:HAVING SUM(売上金額) >= 1000000。WHERE句との違いが診断士試験でも頻出です。


コメント

タイトルとURLをコピーしました