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

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

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

名前: ____________________   日付: ____________

1.やさしい

CROSS JOIN は何を返しますか?

  1. A共通のキー列で一致する行だけ
  2. B最初のテーブルの行だけ
  3. C2 つのテーブルの行のあらゆる組み合わせ
  4. D一致しない行だけ
2.やさしい

クエリで GROUP BY は何をしますか?

  1. ANULL 値を含む行を削除する
  2. B2 つのテーブルを共通の列で結合する
  3. C同じ値を持つ行をグループにまとめ、集約がグループごとに計算されるようにする
  4. D結果の行をアルファベット順に並べ替える
3.やさしい

UNION ALL は UNION とどう違いますか?

  1. AUNION ALL は重複する行を残す
  2. BUNION ALL は結果を並べ替える
  3. CUNION ALL は重複する行を取り除く
  4. DUNION ALL は 1 つのテーブルにしか使えない
4.ふつう

GRANT SELECT ON employees TO alice は何をしますか?

  1. Aユーザー alice が employees テーブルを読めるようにする
  2. Bemployees テーブルを alice にコピーする
  3. Calice が employees テーブルの行を更新および削除できるようにする
  4. Dalice をデータベースの所有者にする
5.ふつう

外部キーが ON DELETE CASCADE で宣言されています。親の行を削除すると何が起こりますか?

  1. A削除は常に拒否される
  2. B親の行がアーカイブテーブルにコピーされる
  3. C子の行の外部キーが自動的に NULL に設定される
  4. Dそれを参照する子の行が自動的に削除される
6.ふつう

テーブルにクラスタ化インデックスが 1 つしか持てないのはなぜですか?

  1. Aクラスタ化インデックスは主キーにしか作れないから
  2. Bクラスタ化インデックスはメモリを使いすぎるから
  3. C行は物理的に 1 つの順序でしか格納できないから
  4. DSQL 標準が、1 つのテーブルに 2 つ以上のインデックスを持つことを禁止しているから
7.むずかしい

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

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

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

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

解答

  1. 1. C · 2 つのテーブルの行のあらゆる組み合わせ
  2. 2. C · 同じ値を持つ行をグループにまとめ、集約がグループごとに計算されるようにする
  3. 3. A · UNION ALL は重複する行を残す
  4. 4. A · ユーザー alice が employees テーブルを読めるようにする
  5. 5. D · それを参照する子の行が自動的に削除される
  6. 6. C · 行は物理的に 1 つの順序でしか格納できないから
  7. 7. C · ほとんどの行が一致するので、多数のインデックス検索より全表スキャンのほうが安いから
  8. 8. A · 更新の喪失(ロストアップデート)

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