1.やさしい
UNION は 2 つの SELECT クエリの結果をどうしますか?
- Aキーで横に並べて結合する
- B両方に現れる行だけを残す
- C1 つ目のクエリにあって 2 つ目にない行だけを残す
- D1 つの結果にまとめ、重複する行を取り除く
2.やさしい
CHECK 制約は何をしますか?
- Aクエリを実行する前に、テーブルが存在するかどうかを確認する
- Bユーザーのパスワードを検証する
- C値が条件を満たさない行を拒否する
- Dテーブルの行数を数える
3.やさしい
クエリで GROUP BY は何をしますか?
- A2 つのテーブルを共通の列で結合する
- B結果の行をアルファベット順に並べ替える
- C同じ値を持つ行をグループにまとめ、集約がグループごとに計算されるようにする
- DNULL 値を含む行を削除する
4.ふつう
第一正規形(1NF)で求められるのは次のうちどれですか?
- Aすべてのテーブルがちょうど 1 列であること
- B外部キーがないこと
- Cすべての非キー列が、キー全体に従属し、キー以外のものには従属しないこと
- D各列が原子的な値を持ち、繰り返しグループがないこと
5.ふつう
テーブルに col が NULL の行があります。WHERE col = NULL はどの行を返しますか?
- A比較が不明(UNKNOWN)になるので、行を返さない
- Bテーブルのすべての行
- Cどのデータベースでもエラー
- DIS NULL の場合と同様に、col が NULL の行だけ
6.ふつう
コミットされた変更がシステムクラッシュ後も残ることを保証する ACID 特性はどれですか?
- A原子性(Atomicity)
- B永続性(Durability)
- C一貫性(Consistency)
- D独立性(Isolation)
7.むずかしい
SELECT dept, name, COUNT(*) FROM emp GROUP BY dept が標準 SQL で無効なのはなぜですか?
- ACOUNT(*) は GROUP BY と一緒に使えないから
- Bname はグループ化も集約もされておらず、グループごとに 1 つの値を持たないから
- Cdept は集約関数の中に入れなければならないから
- DGROUP BY にはテーブルのすべての列を並べなければならないから
8.むずかしい
トランザクション T1 は行 A をロックして行 B を待ち、T2 は行 B をロックして行 A を待っています。一般的な DBMS はどうしますか?
- A一方がふつうにコミットするまで、両方のトランザクションを待たせる
- Bデッドロックを検出し、一方のトランザクションを犠牲として中止する
- C2 つのトランザクションを 1 つにまとめる
- D両方のトランザクションを同時にコミットする
解答
- 1. D · 1 つの結果にまとめ、重複する行を取り除く
- 2. C · 値が条件を満たさない行を拒否する
- 3. C · 同じ値を持つ行をグループにまとめ、集約がグループごとに計算されるようにする
- 4. D · 各列が原子的な値を持ち、繰り返しグループがないこと
- 5. A · 比較が不明(UNKNOWN)になるので、行を返さない
- 6. B · 永続性(Durability)
- 7. B · name はグループ化も集約もされておらず、グループごとに 1 つの値を持たないから
- 8. B · デッドロックを検出し、一方のトランザクションを犠牲として中止する
ステップごとの詳しい解答:このトピックは examproblems.com で練習できます。