助け合いフォーラム

Oracle DB

Oracle Master Bronze DBA 2019(1Z0-085)
問題ID : 29830
問題を開く
次のSQL文でEMP表を作成しました。  CREATE TABLE emp   (emp_id NUMBER(4) NOT NULL,    emp_name VARCHAR2(20) NOT NULL,    hiredate DATE NOT NULL); 次の2つのSQL文を実行した場合の正しい記述はどれですか(2つ選択して下さい)。  1. CREATE OR...

この問題はプレミアムコンテンツです。

上に戻る

ディフォルト値とはそもそも何ですか?

公開日 2023/12/12

この問題の解説を読むと、「ディフォルト値は列名に指定できないのでエラーとなる」と言った旨の説明がありますが、そもそもディフォルト値とはなんなのでしょうか?
検索して調べてみましたが、はっきりと分かりません。

ディフォルト値について、参考書は白黒どちらも使用し、重ねてping-tも使用して勉強していますが、白本にも黒本にもディフォルト値の説明が見当たりませんし、ping-tの解説にも具体的になんなのか載っていないので困っています。本当にBRONZEの範囲なのでしょうか…


m makotoo0505

2023/12/12 15:02

すみません、表記はデフォルト値でした。

m makotoo0505

2023/12/12 15:28

言葉だけを捉えるなら、既定値ということだと思うんですが、一体何に対しての既定値なのか、何故ビューの列にデフォルト値を設定できないのかが分かりません。

2023/12/12 18:24

Oracle Master Bronze DBA 2019 は DBA カテゴリの試験なので、あまり突っ込んだSQL文が出題されることはないのではないかな、とは思いますが、「デフォルト値」については「表」に関する問題の参考部分に以下の記述がありましたので、参考までに。

【表の作成】
*SQL文での表の作成
CREATE TABLE文を使用します。

 CREATE TABLE [スキーマ名.]表名
  (列名 データ型(サイズ) [DEFAULT デフォルト値] [[CONSTRAINT 制約名] 制約タイプ]
   [, 列名 データ型(サイズ)...]
  ) [TABLESPACE 表領域名];

・DEFAULT
行の挿入時に値が指定されていない場合のデフォルト値を指定します。

CREATE TABLE で表を作成する際に、カラムに「DEFAULT」句を指定することで、デフォルト値を設定できます。
INSERT文でデータを挿入する際に、そのカラムに対して値を指定しなかった場合に、設定したデフォルト値が割り当てられる、というものです。


コメント

この返信に対して
コメントを記入できます

2023/12/12 20:00

何故ビューの列にデフォルト値を設定できないのかが分かりません。

この問題の解説部分にも記載の構文の通り、そもそも CREATE VIEW で ビュー名の直後に記述できる列名は、あくまでもビューで使用する列名(列の別名)というだけなので、DEFAULT値云々は元のテーブル側での話となります。

したがって、1番目のSQL文は構文エラーになるため、選択肢「1番目はEMP_VIEWビューの列にデフォルト値を設定できないのでエラーとなる」は正になるかなと思います。

私は古いバージョンのOracle Masterしか持っておらず、実際にこのような問題が実際のBronze DBA 2019試験で出題されるかどうかまではわからないのですが、Ping-tさんの合格体験記などをみてみると、合格された方々の感触として実試験の難易度は黒本よりは高いと言えそうですので、余力があれば、今回の問題についても解説や参考に記載の内容は覚えておいて損はないかもしれません。


コメント

m makotoo0505

2023/12/12 20:51

ありがとうございます!

この返信に対して
コメントを記入できます

この投稿に対して返信しませんか?