1.やさしい
代理キー(サロゲートキー)とは何ですか?
- A自動採番の id のように、業務上の意味を持たない人工的な識別子
- Bメールアドレスのような実世界のデータから作ったキー
- C別のテーブルを参照するキー
- Dビューでだけ使われるキー
2.やさしい
給与が高い順から低い順に結果を並べ替えるにはどうしますか?
- AORDER BY salary DESC
- BSORT salary DOWN
- CORDER BY salary ASC
- DGROUP BY salary DESC
3.やさしい
すでに存在する行の値を変更する SQL 文はどれですか?
- AMODIFY
- BINSERT
- CREPLACE COLUMN
- DUPDATE
4.ふつう
LEFT JOIN が返すのは次のうちどれですか?
- A左テーブルのすべての行と右テーブルの一致する行。一致しない部分は NULL になる
- B両方のテーブルの一致する行のみ
- Cどちらのテーブルでも一致しない行
- D右テーブルのすべての行のみ
5.ふつう
orders テーブルには 5 行あり、それぞれが既存の顧客を参照しています。customers テーブルは 3 行です。customer_id での INNER JOIN は何行を返しますか?
- A8
- B15
- C3
- D5
6.ふつう
EXCEPT(Oracle では MINUS)は何を返しますか?
- A1 つ目のクエリの行のうち、2 つ目に現れないもの
- B両方のクエリに現れる行
- C両方のクエリのすべての行(重複なし)
- D2 つ目のクエリの行のうち、1 つ目に現れないもの
7.むずかしい
トランザクション T1 は行 A をロックして行 B を待ち、T2 は行 B をロックして行 A を待っています。一般的な DBMS はどうしますか?
- A一方がふつうにコミットするまで、両方のトランザクションを待たせる
- Bデッドロックを検出し、一方のトランザクションを犠牲として中止する
- C2 つのトランザクションを 1 つにまとめる
- D両方のトランザクションを同時にコミットする
8.むずかしい
相関サブクエリ(correlated subquery)とは次のうちどれですか?
- A外部キーで 2 つのテーブルを結合するサブクエリ
- B外側のクエリの前に 1 回だけ実行され、その結果がすべての行に対してキャッシュされるサブクエリ
- C外側のクエリの列を参照し、外側の行ごとに評価されるサブクエリ
- D集約関数だけを使うサブクエリ
解答
- 1. A · 自動採番の id のように、業務上の意味を持たない人工的な識別子
- 2. A · ORDER BY salary DESC
- 3. D · UPDATE
- 4. A · 左テーブルのすべての行と右テーブルの一致する行。一致しない部分は NULL になる
- 5. D · 5
- 6. A · 1 つ目のクエリの行のうち、2 つ目に現れないもの
- 7. B · デッドロックを検出し、一方のトランザクションを犠牲として中止する
- 8. C · 外側のクエリの列を参照し、外側の行ごとに評価されるサブクエリ
ステップごとの詳しい解答:このトピックは examproblems.com で練習できます。