1.やさしい
外部キー(foreign key)とは次のうちどれですか?
- A外国のユーザーが使うキー
- Bテーブルのすべての行にわたって値が一意でなければならない列
- C常に暗号化されているキー
- D別のテーブルの主キーを参照する列
2.やさしい
クエリの結果を並べ替えるキーワードはどれですか?
- AARRANGE
- BSORT
- CORDER BY
- DGROUP BY
3.やさしい
クエリで GROUP BY は何をしますか?
- A結果の行をアルファベット順に並べ替える
- BNULL 値を含む行を削除する
- C同じ値を持つ行をグループにまとめ、集約がグループごとに計算されるようにする
- D2 つのテーブルを共通の列で結合する
4.ふつう
学生は多くの科目を履修でき、科目には多くの学生がいます。これはテーブルでどのようにモデル化しますか?
- A学生と科目を 1 つのテーブルにまとめて
- Bstudents テーブルに courses を指す外部キー列 course_id を置いて
- C学生と科目の両方への外部キーを持つ中間テーブルで
- D1 つの列に科目 id のリストを保存して
5.ふつう
WHERE 句に一致する行がないとき、SELECT SUM(amount) FROM orders は何を返しますか?
- A0
- B空文字列
- Cエラー
- DNULL
6.ふつう
共通テーブル式(WITH name AS (...))は何を提供しますか?
- A1 つの文の中で使える、名前付きの一時的な結果
- B削除されるまでディスクに保存され続ける恒久的なテーブル
- C列に対するインデックス
- D新しいデータベースユーザー
7.むずかしい
SELECT name, dept, AVG(salary) OVER (PARTITION BY dept) FROM emp は何を返しますか?
- A部署の平均より多く稼ぐ従業員だけ
- Bname が GROUP BY にないためエラー
- Cすべての従業員の行と、その部署の平均給与
- D部署ごとに 1 行と、その平均給与
8.むずかしい
本番環境のクエリで NATURAL JOIN が危険とされるのはなぜですか?
- A常に直積を返すから
- Bどのデータベースでもサポートされていないから
- C同じ名前のすべての列で結合するため、新しい列が追加されると結果が知らないうちに変わりうるから
- D主キーと外部キーを無視し、NULL の行だけを残すから
解答
- 1. D · 別のテーブルの主キーを参照する列
- 2. C · ORDER BY
- 3. C · 同じ値を持つ行をグループにまとめ、集約がグループごとに計算されるようにする
- 4. C · 学生と科目の両方への外部キーを持つ中間テーブルで
- 5. D · NULL
- 6. A · 1 つの文の中で使える、名前付きの一時的な結果
- 7. C · すべての従業員の行と、その部署の平均給与
- 8. C · 同じ名前のすべての列で結合するため、新しい列が追加されると結果が知らないうちに変わりうるから
ステップごとの詳しい解答:このトピックは examproblems.com で練習できます。