解答つきデータベースと SQLワークシート

無料で印刷できるデータベースと SQLのワークシート:やさしい問題から試験レベルまで 8 問、解答つき。印刷するか PDF で保存できます。

先生方へ: 授業で自由に印刷・コピーしてお使いいただけます。新しいワークシートごとに数値が変わり、専用の解答が付きます。授業ページに ExamProblems へのリンクを載せていただけると嬉しいです。

名前: ____________________   日付: ____________

1.やさしい

行数を数える集約関数はどれですか?

  1. AMAX
  2. BAVG
  3. CCOUNT
  4. DSUM
2.やさしい

給与が高い順から低い順に結果を並べ替えるにはどうしますか?

  1. AGROUP BY salary DESC
  2. BORDER BY salary DESC
  3. CSORT salary DOWN
  4. DORDER BY salary ASC
3.やさしい

候補キーとは何ですか?

  1. ANULL 値を含むあらゆる列
  2. B2 つのテーブルの行を結びつけるために共有される列の組
  3. C各行を一意に識別する最小の列の組
  4. D外部キーになるのを待っている列
4.ふつう

2 つの SELECT クエリの間で使う INTERSECT は何を返しますか?

  1. A両方の結果のすべての行
  2. B結果の直積
  3. C1 つ目の結果にあって 2 つ目にない行
  4. D両方の結果に現れる行
5.ふつう

customers テーブルの異なる都市の数を返すクエリはどれですか?

  1. ASELECT DISTINCT COUNT(city) FROM customers
  2. BSELECT COUNT(DISTINCT city) FROM customers
  3. CSELECT SUM(DISTINCT city) FROM customers
  4. DSELECT COUNT(city) FROM customers GROUP BY city
6.ふつう

employees テーブルには、別の従業員を参照する manager_id 列があります。各従業員をその上司の名前と並べて一覧にするにはどうしますか?

  1. Amanager_id だけで GROUP BY を使う
  2. BUNION ALL と WHERE フィルターを使って、テーブルをそれ自身と結合する
  3. C2 つの別名を使って employees テーブルをそれ自身と結合する
  4. Dディスク上にテーブルの 2 つ目のコピーを作る
7.むずかしい

クエリ FROM customers c LEFT JOIN orders o ON o.customer_id = c.id WHERE o.status = 'paid' が、注文のない顧客を思いがけず落としてしまいます。なぜですか?

  1. Ao に対する WHERE 条件が NULL で埋められた行を除外し、内部結合と同じになるから
  2. BLEFT JOIN は一致しない行を決して残さないから
  3. Cstatus が予約語だから
  4. D結合には ON ではなく USING を使うべきだから
8.むずかしい

customers LEFT JOIN orders の後、顧客ごとの注文数を数えるのに COUNT(*) ではなく COUNT(o.id) を使うのはなぜですか?

  1. A結合の後では COUNT(*) が使えないから
  2. BCOUNT(*) は、注文のない顧客の NULL で埋められた行を 1 と数えるから
  3. CCOUNT(*) は NULL 値を含む行を無視するから
  4. DCOUNT(o.id) は異なる顧客だけを数えるから

解答

  1. 1. C · COUNT
  2. 2. B · ORDER BY salary DESC
  3. 3. C · 各行を一意に識別する最小の列の組
  4. 4. D · 両方の結果に現れる行
  5. 5. B · SELECT COUNT(DISTINCT city) FROM customers
  6. 6. C · 2 つの別名を使って employees テーブルをそれ自身と結合する
  7. 7. A · o に対する WHERE 条件が NULL で埋められた行を除外し、内部結合と同じになるから
  8. 8. B · COUNT(*) は、注文のない顧客の NULL で埋められた行を 1 と数えるから

ステップごとの詳しい解答:このトピックは examproblems.com で練習できます。