解答つきデータベースと SQLワークシート
無料で印刷できるデータベースと SQLのワークシート:やさしい問題から試験レベルまで 8 問、解答つき。印刷するか PDF で保存できます。
先生方へ: 授業で自由に印刷・コピーしてお使いいただけます。新しいワークシートごとに数値が変わり、専用の解答が付きます。授業ページに ExamProblems へのリンクを載せていただけると嬉しいです。
名前: ____________________ 日付: ____________
1.やさしい
クエリで GROUP BY は何をしますか?
- A同じ値を持つ行をグループにまとめ、集約がグループごとに計算されるようにする
- BNULL 値を含む行を削除する
- C2 つのテーブルを共通の列で結合する
- D結果の行をアルファベット順に並べ替える
2.やさしい
候補キーとは何ですか?
- A各行を一意に識別する最小の列の組
- B2 つのテーブルの行を結びつけるために共有される列の組
- CNULL 値を含むあらゆる列
- D外部キーになるのを待っている列
3.やさしい
列に付けた UNIQUE 制約は何を保証しますか?
- Aその列で 2 つの行が同じ非 NULL 値を持たない
- B列の値が並べ替えられている
- Cその列が自動的にテーブルの主キーになる
- D挿入後に列を変更できない
4.ふつう
customers テーブルの異なる都市の数を返すクエリはどれですか?
- ASELECT COUNT(city) FROM customers GROUP BY city
- BSELECT SUM(DISTINCT city) FROM customers
- CSELECT DISTINCT COUNT(city) FROM customers
- DSELECT COUNT(DISTINCT city) FROM customers
5.ふつう
テーブルにクラスタ化インデックスが 1 つしか持てないのはなぜですか?
- ASQL 標準が、1 つのテーブルに 2 つ以上のインデックスを持つことを禁止しているから
- B行は物理的に 1 つの順序でしか格納できないから
- Cクラスタ化インデックスは主キーにしか作れないから
- Dクラスタ化インデックスはメモリを使いすぎるから
6.ふつう
テーブルに col が NULL の行があります。WHERE col = NULL はどの行を返しますか?
- Aテーブルのすべての行
- B比較が不明(UNKNOWN)になるので、行を返さない
- Cどのデータベースでもエラー
- DIS NULL の場合と同様に、col が NULL の行だけ
7.むずかしい
次のクエリは何を返しますか:SELECT name FROM students WHERE grade > (SELECT AVG(grade) FROM students)
- A最高点の学生のみ
- B全学生の平均点
- C成績が平均点を上回る学生
- DWHERE ではサブクエリが使えないためエラー
8.むずかしい
テーブルに 100 万行あり、ブール型の列 is_active はそのうち 95% で TRUE です。WHERE is_active = TRUE について、オプティマイザが is_active のインデックスを無視することがあるのはなぜですか?
- Aほとんどの行が一致するので、多数のインデックス検索より全表スキャンのほうが安いから
- Bブール型の列にはインデックスを作れないから
- Cインデックスでは TRUE が NULL として扱われるから
- Dオプティマイザは WHERE 句でインデックスを決して使わないから
解答
- 1. A · 同じ値を持つ行をグループにまとめ、集約がグループごとに計算されるようにする
- 2. A · 各行を一意に識別する最小の列の組
- 3. A · その列で 2 つの行が同じ非 NULL 値を持たない
- 4. D · SELECT COUNT(DISTINCT city) FROM customers
- 5. B · 行は物理的に 1 つの順序でしか格納できないから
- 6. B · 比較が不明(UNKNOWN)になるので、行を返さない
- 7. C · 成績が平均点を上回る学生
- 8. A · ほとんどの行が一致するので、多数のインデックス検索より全表スキャンのほうが安いから
ステップごとの詳しい解答:このトピックは examproblems.com で練習できます。