1.やさしい
INNER JOIN が返すのは次のうちどれですか?
- A左テーブルのすべての行。一致がない場合は NULL が入る
- B一致しない行
- C両方のテーブルのすべての行
- D両方のテーブルで値が一致する行のみ
2.やさしい
グループ化の前に行を絞り込む句はどれですか?
- AHAVING
- BORDER BY
- CGROUP BY
- DWHERE
3.やさしい
外部キー(foreign key)とは次のうちどれですか?
- A外国のユーザーが使うキー
- B別のテーブルの主キーを参照する列
- C常に暗号化されているキー
- Dテーブルのすべての行にわたって値が一意でなければならない列
4.ふつう
EXCEPT(Oracle では MINUS)は何を返しますか?
- A2 つ目のクエリの行のうち、1 つ目に現れないもの
- B両方のクエリに現れる行
- C両方のクエリのすべての行(重複なし)
- D1 つ目のクエリの行のうち、2 つ目に現れないもの
5.ふつう
テーブルに col が NULL の行があります。WHERE col = NULL はどの行を返しますか?
- Aどのデータベースでもエラー
- Bテーブルのすべての行
- CIS NULL の場合と同様に、col が NULL の行だけ
- D比較が不明(UNKNOWN)になるので、行を返さない
6.ふつう
orders テーブルには 5 行あり、それぞれが既存の顧客を参照しています。customers テーブルは 3 行です。customer_id での INNER JOIN は何行を返しますか?
- A8
- B5
- C3
- D15
7.むずかしい
ファントムリード(phantom read)とは何ですか?
- A同じクエリを再実行すると、別のコミット済みトランザクションが挿入した新しい行が返される現象
- B一度も書き込まれていないデータを読むこと
- C行を 1 つも返さないクエリ
- D未コミットの変更を読むこと
8.むずかしい
WHERE YEAR(order_date) = 2025 を含むクエリが order_date のインデックスを使わないことがあるのはなぜですか?
- A列に関数を適用すると、単純なインデックス範囲検索ができなくなるから
- Border_date のインデックスは ORDER BY 句にしか使われず、WHERE には決して使われないから
- Cインデックスは日付では決して機能しないから
- DYEAR は有効な SQL ではないから
解答
- 1. D · 両方のテーブルで値が一致する行のみ
- 2. D · WHERE
- 3. B · 別のテーブルの主キーを参照する列
- 4. D · 1 つ目のクエリの行のうち、2 つ目に現れないもの
- 5. D · 比較が不明(UNKNOWN)になるので、行を返さない
- 6. B · 5
- 7. A · 同じクエリを再実行すると、別のコミット済みトランザクションが挿入した新しい行が返される現象
- 8. A · 列に関数を適用すると、単純なインデックス範囲検索ができなくなるから
ステップごとの詳しい解答:このトピックは examproblems.com で練習できます。