1.やさしい
列に付けた UNIQUE 制約は何を保証しますか?
- Aその列が自動的にテーブルの主キーになる
- Bその列で 2 つの行が同じ非 NULL 値を持たない
- C挿入後に列を変更できない
- D列の値が並べ替えられている
2.やさしい
WHERE price BETWEEN 10 AND 20 はどの行を選びますか?
- Aprice が 10 より大きく 20 より小さい行(10 と 20 は除く)
- Bprice が 10 から 20 の範囲外の行
- Cprice が 10 または 20 に等しい行だけ
- Dprice が 10 から 20 まで(10 と 20 を含む)の行
3.やさしい
SQL において NULL は何を表しますか?
- A数値列におけるゼロという数
- B欠けている値または不明な値
- CBoolean の false
- D空文字列
4.ふつう
ダーティリードとは何ですか?
- A壊れたディスクからデータを読むこと
- B同じ行を 2 回読んで同じ値を得ること
- CWHERE 句なしでデータを読むこと
- Dまだコミットされていない別のトランザクションが書いたデータを読むこと
5.ふつう
SELECT price * 2 AS double_price FROM t WHERE double_price > 10 が多くのデータベースで失敗するのはなぜですか?
- AWHERE は SELECT リストより先に評価されるので、別名がまだ存在しないから
- B別名にアンダースコアを含めてはいけないから
- CWHERE はテキスト列しか比較できないから
- DSELECT リストでは算術演算が許されないから
6.ふつう
テーブルに col が NULL の行があります。WHERE col = NULL はどの行を返しますか?
- A比較が不明(UNKNOWN)になるので、行を返さない
- Bどのデータベースでもエラー
- CIS NULL の場合と同様に、col が NULL の行だけ
- Dテーブルのすべての行
7.むずかしい
深さがわからない組織ツリーで、ある管理職の下にいるすべての従業員を見つけるのに最も適した SQL の機能はどれですか?
- Amanager_id への UNIQUE 制約
- B再帰的な共通テーブル式(WITH RECURSIVE)
- Cmanager_id による employees テーブルの 1 回の自己結合
- Dmanager_id での GROUP BY
8.むずかしい
ファントムリード(phantom read)とは何ですか?
- A同じクエリを再実行すると、別のコミット済みトランザクションが挿入した新しい行が返される現象
- B行を 1 つも返さないクエリ
- C一度も書き込まれていないデータを読むこと
- D未コミットの変更を読むこと
解答
- 1. B · その列で 2 つの行が同じ非 NULL 値を持たない
- 2. D · price が 10 から 20 まで(10 と 20 を含む)の行
- 3. B · 欠けている値または不明な値
- 4. D · まだコミットされていない別のトランザクションが書いたデータを読むこと
- 5. A · WHERE は SELECT リストより先に評価されるので、別名がまだ存在しないから
- 6. A · 比較が不明(UNKNOWN)になるので、行を返さない
- 7. B · 再帰的な共通テーブル式(WITH RECURSIVE)
- 8. A · 同じクエリを再実行すると、別のコミット済みトランザクションが挿入した新しい行が返される現象
ステップごとの詳しい解答:このトピックは examproblems.com で練習できます。