解答つきデータベースと SQLワークシート
無料で印刷できるデータベースと SQLのワークシート:やさしい問題から試験レベルまで 8 問、解答つき。印刷するか PDF で保存できます。
先生方へ: 授業で自由に印刷・コピーしてお使いいただけます。新しいワークシートごとに数値が変わり、専用の解答が付きます。授業ページに ExamProblems へのリンクを載せていただけると嬉しいです。
名前: ____________________ 日付: ____________
1.やさしい
主キー(primary key)とは何ですか?
- A各行を一意に識別する列または列の組
- Bすべてのテーブルの最初の列
- Cデータベースのパスワード
- D重複する値を含んでもよいが、NULL を含んではならない列
2.やさしい
複合キーとは何ですか?
- Aデータベースが生成するキー
- B別のテーブルに保存されたキー
- C2 つ以上の列からなるキー
- D重複した値を許すキー
3.やさしい
グループ化の前に行を絞り込む句はどれですか?
- AGROUP BY
- BORDER BY
- CWHERE
- DHAVING
4.ふつう
2 つの SELECT クエリの間で使う INTERSECT は何を返しますか?
- A両方の結果に現れる行
- B1 つ目の結果にあって 2 つ目にない行
- C両方の結果のすべての行
- D結果の直積
5.ふつう
外部キーが ON DELETE CASCADE で宣言されています。親の行を削除すると何が起こりますか?
- Aそれを参照する子の行が自動的に削除される
- B親の行がアーカイブテーブルにコピーされる
- C削除は常に拒否される
- D子の行の外部キーが自動的に NULL に設定される
6.ふつう
共通テーブル式(WITH name AS (...))は何を提供しますか?
- A列に対するインデックス
- B削除されるまでディスクに保存され続ける恒久的なテーブル
- C1 つの文の中で使える、名前付きの一時的な結果
- D新しいデータベースユーザー
7.むずかしい
EXPLAIN(PostgreSQL では EXPLAIN ANALYZE)はクエリについて何を示しますか?
- A関係代数の記法だけによるクエリの書き換え
- Bスキャンや結合方法など、オプティマイザが選んだ実行計画
- Cクエリを実行したユーザーの一覧
- Dクエリ中の各 SQL キーワードの意味
8.むずかしい
customers LEFT JOIN orders の後、顧客ごとの注文数を数えるのに COUNT(*) ではなく COUNT(o.id) を使うのはなぜですか?
- ACOUNT(*) は、注文のない顧客の NULL で埋められた行を 1 と数えるから
- BCOUNT(o.id) は異なる顧客だけを数えるから
- C結合の後では COUNT(*) が使えないから
- DCOUNT(*) は NULL 値を含む行を無視するから
解答
- 1. A · 各行を一意に識別する列または列の組
- 2. C · 2 つ以上の列からなるキー
- 3. C · WHERE
- 4. A · 両方の結果に現れる行
- 5. A · それを参照する子の行が自動的に削除される
- 6. C · 1 つの文の中で使える、名前付きの一時的な結果
- 7. B · スキャンや結合方法など、オプティマイザが選んだ実行計画
- 8. A · COUNT(*) は、注文のない顧客の NULL で埋められた行を 1 と数えるから
ステップごとの詳しい解答:このトピックは examproblems.com で練習できます。