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

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

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

名前: ____________________   日付: ____________

1.やさしい

テーブルからデータを取得する SQL 文はどれですか?

  1. ACREATE
  2. BINSERT
  3. CSELECT
  4. DUPDATE
2.やさしい

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

  1. ATOP ROWS 10
  2. BMAX 10
  3. CLIMIT 10
  4. DFIRST 10 ONLY
3.やさしい

トランザクションで COMMIT は何をしますか?

  1. Aトランザクション開始以降に行ったすべての変更を取り消す
  2. Bトランザクションのすべての変更を確定させる
  3. Cデータベース全体をロックする
  4. D新しいテーブルを開始する
4.ふつう

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

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

顧客ごとの注文数を返すクエリはどれですか?

  1. ASELECT customer_id FROM orders WHERE COUNT(*) > 0
  2. BSELECT DISTINCT COUNT(*) FROM orders
  3. CSELECT customer_id, COUNT(*) FROM orders ORDER BY customer_id
  4. DSELECT customer_id, COUNT(*) FROM orders GROUP BY customer_id
6.ふつう

ACID の "A" は何を表しますか?

  1. A正確性(Accuracy)
  2. B集約(Aggregation)
  3. C可用性(Availability)
  4. D原子性(Atomicity)
7.むずかしい

テーブルに 100 万行あり、ブール型の列 is_active はそのうち 95% で TRUE です。WHERE is_active = TRUE について、オプティマイザが is_active のインデックスを無視することがあるのはなぜですか?

  1. Aオプティマイザは WHERE 句でインデックスを決して使わないから
  2. Bインデックスでは TRUE が NULL として扱われるから
  3. Cブール型の列にはインデックスを作れないから
  4. Dほとんどの行が一致するので、多数のインデックス検索より全表スキャンのほうが安いから
8.むずかしい

役に立つインデックスのない 2 つの大きなテーブルの等価結合で、オプティマイザがよく選ぶ結合アルゴリズムはどれですか?

  1. Aインデックス検索を伴うネステッドループ結合
  2. B交差結合
  3. Cハッシュ結合
  4. D主キーでのビットマップ結合

解答

  1. 1. C · SELECT
  2. 2. C · LIMIT 10
  3. 3. B · トランザクションのすべての変更を確定させる
  4. 4. B · WHERE は SELECT リストより先に評価されるので、別名がまだ存在しないから
  5. 5. D · SELECT customer_id, COUNT(*) FROM orders GROUP BY customer_id
  6. 6. D · 原子性(Atomicity)
  7. 7. D · ほとんどの行が一致するので、多数のインデックス検索より全表スキャンのほうが安いから
  8. 8. C · ハッシュ結合

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