1.やさしい
クエリで GROUP BY は何をしますか?
- A2 つのテーブルを共通の列で結合する
- BNULL 値を含む行を削除する
- C同じ値を持つ行をグループにまとめ、集約がグループごとに計算されるようにする
- D結果の行をアルファベット順に並べ替える
2.やさしい
UNION ALL は UNION とどう違いますか?
- AUNION ALL は重複する行を残す
- BUNION ALL は重複する行を取り除く
- CUNION ALL は 1 つのテーブルにしか使えない
- DUNION ALL は結果を並べ替える
3.やさしい
WHERE country IN ('NL', 'BE', 'DE') は何をしますか?
- Acountry の値が 3 つのコードすべてを同時に含む行を残す
- Bcountry がリストにない行を残す
- Cリストの順に行を並べ替える
- Dcountry がリスト内のいずれかの値に等しい行を残す
4.ふつう
SELECT price * 2 AS double_price FROM t WHERE double_price > 10 が多くのデータベースで失敗するのはなぜですか?
- AWHERE は SELECT リストより先に評価されるので、別名がまだ存在しないから
- BWHERE はテキスト列しか比較できないから
- CSELECT リストでは算術演算が許されないから
- D別名にアンダースコアを含めてはいけないから
5.ふつう
ある列に値 10、20、NULL が入っています。AVG(col) は何を返しますか?
- A10
- B30
- C15
- DNULL
6.ふつう
関係代数で、射影演算子(π)は何に対応しますか?
- A与えられた条件を満たす行を選ぶこと
- B2 つのテーブルをキーで組み合わせること
- C結果に現れる列を選ぶこと
- D結果を並べ替えること
7.むずかしい
当直の医師 2 人が、それぞれ相手がまだ当直であることを確認し、2 人とも同時に当直を外れます。ここでスナップショット分離がなお許してしまう異常はどれですか?
- A書き込みスキュー
- B1 つのトランザクション内の反復不能読み取り
- Cダーティライト
- Dダーティリード
8.むずかしい
クエリ FROM customers c LEFT JOIN orders o ON o.customer_id = c.id WHERE o.status = 'paid' が、注文のない顧客を思いがけず落としてしまいます。なぜですか?
- Ao に対する WHERE 条件が NULL で埋められた行を除外し、内部結合と同じになるから
- Bstatus が予約語だから
- C結合には ON ではなく USING を使うべきだから
- DLEFT JOIN は一致しない行を決して残さないから
解答
- 1. C · 同じ値を持つ行をグループにまとめ、集約がグループごとに計算されるようにする
- 2. A · UNION ALL は重複する行を残す
- 3. D · country がリスト内のいずれかの値に等しい行を残す
- 4. A · WHERE は SELECT リストより先に評価されるので、別名がまだ存在しないから
- 5. C · 15
- 6. C · 結果に現れる列を選ぶこと
- 7. A · 書き込みスキュー
- 8. A · o に対する WHERE 条件が NULL で埋められた行を除外し、内部結合と同じになるから
ステップごとの詳しい解答:このトピックは examproblems.com で練習できます。