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

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

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

名前: ____________________   日付: ____________

1.やさしい

クエリの結果を並べ替えるキーワードはどれですか?

  1. AARRANGE
  2. BORDER BY
  3. CGROUP BY
  4. DSORT
2.やさしい

PostgreSQL と MySQL で、結果の最初の 10 行だけを返す句はどれですか?

  1. ATOP ROWS 10
  2. BLIMIT 10
  3. CMAX 10
  4. DFIRST 10 ONLY
3.やさしい

代理キー(サロゲートキー)とは何ですか?

  1. A別のテーブルを参照するキー
  2. Bビューでだけ使われるキー
  3. C自動採番の id のように、業務上の意味を持たない人工的な識別子
  4. Dメールアドレスのような実世界のデータから作ったキー
4.ふつう

SELECT name, CASE WHEN grade >= 5.5 THEN 'pass' ELSE 'fail' END FROM results は何を返しますか?

  1. A成績に応じて 'pass' か 'fail' のラベルが付いた各名前
  2. B合格した学生だけ
  3. CSELECT では CASE が使えないためエラー
  4. D合格した学生と不合格の学生の人数
5.ふつう

SELECT price * 2 AS double_price FROM t WHERE double_price > 10 が多くのデータベースで失敗するのはなぜですか?

  1. AWHERE はテキスト列しか比較できないから
  2. BWHERE は SELECT リストより先に評価されるので、別名がまだ存在しないから
  3. CSELECT リストでは算術演算が許されないから
  4. D別名にアンダースコアを含めてはいけないから
6.ふつう

関係代数で、選択演算子(σ)はどの SQL の句に対応しますか?

  1. AWHERE
  2. BGROUP BY
  3. CSELECT リスト
  4. DORDER BY
7.むずかしい

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

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

2 つのトランザクションがどちらも stock = 10 を読み、それぞれ 1 を引いて結果を書き込んだため、8 ではなく 9 になりました。これはどの異常ですか?

  1. A更新の喪失(ロストアップデート)
  2. B削除時異常
  3. Cダーティリード
  4. Dファントムリード

解答

  1. 1. B · ORDER BY
  2. 2. B · LIMIT 10
  3. 3. C · 自動採番の id のように、業務上の意味を持たない人工的な識別子
  4. 4. A · 成績に応じて 'pass' か 'fail' のラベルが付いた各名前
  5. 5. B · WHERE は SELECT リストより先に評価されるので、別名がまだ存在しないから
  6. 6. A · WHERE
  7. 7. C · o に対する WHERE 条件が NULL で埋められた行を除外し、内部結合と同じになるから
  8. 8. A · 更新の喪失(ロストアップデート)

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