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

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

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

名前: ____________________   日付: ____________

1.やさしい

CHECK 制約は何をしますか?

  1. Aテーブルの行数を数える
  2. Bユーザーのパスワードを検証する
  3. C値が条件を満たさない行を拒否する
  4. Dクエリを実行する前に、テーブルが存在するかどうかを確認する
2.やさしい

既存のテーブルに新しい列を追加する文はどれですか?

  1. AUPDATE TABLE
  2. BINSERT COLUMN
  3. CALTER TABLE
  4. DCREATE COLUMN
3.やさしい

すでに存在する行の値を変更する SQL 文はどれですか?

  1. AUPDATE
  2. BMODIFY
  3. CREPLACE COLUMN
  4. DINSERT
4.ふつう

SQL インジェクション(SQL injection)とは何ですか?

  1. Aインデックスを追加する方法
  2. Bデータベースのバックアップ手法
  3. C1 つの INSERT 文で多数の行を高速に挿入する方法
  4. Dユーザー入力によって SQL クエリの構造が変えられてしまう攻撃
5.ふつう

WHERE EXISTS (subquery) が行について真になるのはどのような場合ですか?

  1. Aサブクエリがちょうど 1 行を返す場合
  2. Bサブクエリが NULL 値を返さない場合
  3. Cサブクエリが少なくとも 1 行を返す場合
  4. Dサブクエリが 0 より大きい数を返す場合
6.ふつう

共通テーブル式(WITH name AS (...))は何を提供しますか?

  1. A削除されるまでディスクに保存され続ける恒久的なテーブル
  2. B列に対するインデックス
  3. C1 つの文の中で使える、名前付きの一時的な結果
  4. D新しいデータベースユーザー
7.むずかしい

トランザクション T1 は行 A をロックして行 B を待ち、T2 は行 B をロックして行 A を待っています。一般的な DBMS はどうしますか?

  1. Aデッドロックを検出し、一方のトランザクションを犠牲として中止する
  2. B両方のトランザクションを同時にコミットする
  3. C一方がふつうにコミットするまで、両方のトランザクションを待たせる
  4. D2 つのトランザクションを 1 つにまとめる
8.むずかしい

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

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

解答

  1. 1. C · 値が条件を満たさない行を拒否する
  2. 2. C · ALTER TABLE
  3. 3. A · UPDATE
  4. 4. D · ユーザー入力によって SQL クエリの構造が変えられてしまう攻撃
  5. 5. C · サブクエリが少なくとも 1 行を返す場合
  6. 6. C · 1 つの文の中で使える、名前付きの一時的な結果
  7. 7. A · デッドロックを検出し、一方のトランザクションを犠牲として中止する
  8. 8. D · ほとんどの行が一致するので、多数のインデックス検索より全表スキャンのほうが安いから

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