Kodrill

OSS-DB Silver / SQL: テーブル定義とデータベースオブジェクト ・ 無料問題 3/5

SQL: テーブル定義とデータベースオブジェクト 問題3[SQL コマンド]

次の SQL を実行したときの結果として、正しいものを選んでください。

SQL
CREATE TABLE product (name text, price integer CHECK (price > 0));INSERT INTO product VALUES ('a', 100), ('b', 0);

選択肢

  • A.b の price は自動で 1 に直されて挿入される
  • B.CHECK 制約の違反でエラーになり、どちらの行も挿入されない正解
  • C.a の行だけが挿入され、b の行はエラーになる
  • D.どちらの行も挿入され、警告が出る

解説実行して確認済み

CHECK 制約は、条件が偽になる値を拒否します (NULL は条件が不明なので通ります)。1 つの INSERT 文はまとめて 1 つの処理なので、どこかでエラーになると文全体が取り消され、a の行も挿入されません (SQLSTATE 23514)。

この問題の答えは、試験の対象バージョンでコードを実際に実行して確かめています。確かめ方は運営者情報に書いています。

「SQL: テーブル定義とデータベースオブジェクト」の要点を解説記事で読む

「SQL: テーブル定義とデータベースオブジェクト」の無料問題

ここで公開しているのは無料範囲の問題です。無料登録すると、解答の記録・ダッシュボードでの復習ができ、 プレミアムならこの問題セットの全問題と本番形式の模擬試験も解けます。