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

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

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

名前: ____________________   日付: ____________

1.やさしい

主キー(primary key)とは何ですか?

  1. A各行を一意に識別する列または列の組
  2. Bすべてのテーブルの最初の列
  3. Cデータベースのパスワード
  4. D重複する値を含んでもよいが、NULL を含んではならない列
2.やさしい

複合キーとは何ですか?

  1. Aデータベースが生成するキー
  2. B別のテーブルに保存されたキー
  3. C2 つ以上の列からなるキー
  4. D重複した値を許すキー
3.やさしい

グループ化の前に行を絞り込む句はどれですか?

  1. AGROUP BY
  2. BORDER BY
  3. CWHERE
  4. DHAVING
4.ふつう

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

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

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

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

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

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

EXPLAIN(PostgreSQL では EXPLAIN ANALYZE)はクエリについて何を示しますか?

  1. A関係代数の記法だけによるクエリの書き換え
  2. Bスキャンや結合方法など、オプティマイザが選んだ実行計画
  3. Cクエリを実行したユーザーの一覧
  4. Dクエリ中の各 SQL キーワードの意味
8.むずかしい

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

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

解答

  1. 1. A · 各行を一意に識別する列または列の組
  2. 2. C · 2 つ以上の列からなるキー
  3. 3. C · WHERE
  4. 4. A · 両方の結果に現れる行
  5. 5. A · それを参照する子の行が自動的に削除される
  6. 6. C · 1 つの文の中で使える、名前付きの一時的な結果
  7. 7. B · スキャンや結合方法など、オプティマイザが選んだ実行計画
  8. 8. A · COUNT(*) は、注文のない顧客の NULL で埋められた行を 1 と数えるから

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