1.やさしい
テーブルからデータを取得する SQL 文はどれですか?
- ACREATE
- BINSERT
- CSELECT
- DUPDATE
2.やさしい
PostgreSQL と MySQL で、結果の最初の 10 行だけを返す句はどれですか?
- ATOP ROWS 10
- BMAX 10
- CLIMIT 10
- DFIRST 10 ONLY
3.やさしい
トランザクションで COMMIT は何をしますか?
- Aトランザクション開始以降に行ったすべての変更を取り消す
- Bトランザクションのすべての変更を確定させる
- Cデータベース全体をロックする
- D新しいテーブルを開始する
4.ふつう
SELECT price * 2 AS double_price FROM t WHERE double_price > 10 が多くのデータベースで失敗するのはなぜですか?
- A別名にアンダースコアを含めてはいけないから
- BWHERE は SELECT リストより先に評価されるので、別名がまだ存在しないから
- CWHERE はテキスト列しか比較できないから
- DSELECT リストでは算術演算が許されないから
5.ふつう
顧客ごとの注文数を返すクエリはどれですか?
- ASELECT customer_id FROM orders WHERE COUNT(*) > 0
- BSELECT DISTINCT COUNT(*) FROM orders
- CSELECT customer_id, COUNT(*) FROM orders ORDER BY customer_id
- DSELECT customer_id, COUNT(*) FROM orders GROUP BY customer_id
6.ふつう
ACID の "A" は何を表しますか?
- A正確性(Accuracy)
- B集約(Aggregation)
- C可用性(Availability)
- D原子性(Atomicity)
7.むずかしい
テーブルに 100 万行あり、ブール型の列 is_active はそのうち 95% で TRUE です。WHERE is_active = TRUE について、オプティマイザが is_active のインデックスを無視することがあるのはなぜですか?
- Aオプティマイザは WHERE 句でインデックスを決して使わないから
- Bインデックスでは TRUE が NULL として扱われるから
- Cブール型の列にはインデックスを作れないから
- Dほとんどの行が一致するので、多数のインデックス検索より全表スキャンのほうが安いから
8.むずかしい
役に立つインデックスのない 2 つの大きなテーブルの等価結合で、オプティマイザがよく選ぶ結合アルゴリズムはどれですか?
- Aインデックス検索を伴うネステッドループ結合
- B交差結合
- Cハッシュ結合
- D主キーでのビットマップ結合
解答
- 1. C · SELECT
- 2. C · LIMIT 10
- 3. B · トランザクションのすべての変更を確定させる
- 4. B · WHERE は SELECT リストより先に評価されるので、別名がまだ存在しないから
- 5. D · SELECT customer_id, COUNT(*) FROM orders GROUP BY customer_id
- 6. D · 原子性(Atomicity)
- 7. D · ほとんどの行が一致するので、多数のインデックス検索より全表スキャンのほうが安いから
- 8. C · ハッシュ結合
ステップごとの詳しい解答:このトピックは examproblems.com で練習できます。