1.やさしい
実体関連(ER)図は何に使いますか?
- Aクエリがどのように実行されるかを示す
- Bデータベースの性能を測定する
- Cデータベースを設計するときに、実体、その属性、関連をモデル化する
- Dデータベースのユーザーを一覧にする
2.やさしい
CHECK 制約は何をしますか?
- Aテーブルの行数を数える
- Bクエリを実行する前に、テーブルが存在するかどうかを確認する
- Cユーザーのパスワードを検証する
- D値が条件を満たさない行を拒否する
3.やさしい
トランザクションで COMMIT は何をしますか?
- Aトランザクションのすべての変更を確定させる
- Bトランザクション開始以降に行ったすべての変更を取り消す
- Cデータベース全体をロックする
- D新しいテーブルを開始する
4.ふつう
各部署の最高給与を返すクエリはどれですか?
- ASELECT MAX(dept), salary FROM emp GROUP BY salary
- BSELECT dept, MAX(salary) FROM emp ORDER BY dept
- CSELECT dept, salary FROM emp WHERE salary = MAX(salary)
- DSELECT dept, MAX(salary) FROM emp GROUP BY dept
5.ふつう
学生は多くの科目を履修でき、科目には多くの学生がいます。これはテーブルでどのようにモデル化しますか?
- A学生と科目の両方への外部キーを持つ中間テーブルで
- B1 つの列に科目 id のリストを保存して
- C学生と科目を 1 つのテーブルにまとめて
- Dstudents テーブルに courses を指す外部キー列 course_id を置いて
6.ふつう
SELECT price * 2 AS double_price FROM t WHERE double_price > 10 が多くのデータベースで失敗するのはなぜですか?
- AWHERE は SELECT リストより先に評価されるので、別名がまだ存在しないから
- BWHERE はテキスト列しか比較できないから
- C別名にアンダースコアを含めてはいけないから
- DSELECT リストでは算術演算が許されないから
7.むずかしい
EXPLAIN(PostgreSQL では EXPLAIN ANALYZE)はクエリについて何を示しますか?
- Aクエリを実行したユーザーの一覧
- Bスキャンや結合方法など、オプティマイザが選んだ実行計画
- Cクエリ中の各 SQL キーワードの意味
- D関係代数の記法だけによるクエリの書き換え
8.むずかしい
FULL OUTER JOIN は何を返しますか?
- A一致しない行のみ
- B一致する行のみ
- C一方のテーブルの各行を他方のすべての行と組み合わせる直積(デカルト積)
- D両方のテーブルのすべての行。可能な限り対応付け、対応がない部分は NULL で埋める
解答
- 1. C · データベースを設計するときに、実体、その属性、関連をモデル化する
- 2. D · 値が条件を満たさない行を拒否する
- 3. A · トランザクションのすべての変更を確定させる
- 4. D · SELECT dept, MAX(salary) FROM emp GROUP BY dept
- 5. A · 学生と科目の両方への外部キーを持つ中間テーブルで
- 6. A · WHERE は SELECT リストより先に評価されるので、別名がまだ存在しないから
- 7. B · スキャンや結合方法など、オプティマイザが選んだ実行計画
- 8. D · 両方のテーブルのすべての行。可能な限り対応付け、対応がない部分は NULL で埋める
ステップごとの詳しい解答:このトピックは examproblems.com で練習できます。