助け合いフォーラム
この問題はプレミアムコンテンツです。
ディフォルト値とはそもそも何ですか?
この問題の解説を読むと、「ディフォルト値は列名に指定できないのでエラーとなる」と言った旨の説明がありますが、そもそもディフォルト値とはなんなのでしょうか?
検索して調べてみましたが、はっきりと分かりません。
ディフォルト値について、参考書は白黒どちらも使用し、重ねてping-tも使用して勉強していますが、白本にも黒本にもディフォルト値の説明が見当たりませんし、ping-tの解説にも具体的になんなのか載っていないので困っています。本当にBRONZEの範囲なのでしょうか…
Oracle Master Bronze DBA 2019 は DBA カテゴリの試験なので、あまり突っ込んだSQL文が出題されることはないのではないかな、とは思いますが、「デフォルト値」については「表」に関する問題の参考部分に以下の記述がありましたので、参考までに。
【表の作成】
*SQL文での表の作成
CREATE TABLE文を使用します。CREATE TABLE [スキーマ名.]表名
(列名 データ型(サイズ) [DEFAULT デフォルト値] [[CONSTRAINT 制約名] 制約タイプ]
[, 列名 データ型(サイズ)...]
) [TABLESPACE 表領域名];・DEFAULT
行の挿入時に値が指定されていない場合のデフォルト値を指定します。
CREATE TABLE で表を作成する際に、カラムに「DEFAULT」句を指定することで、デフォルト値を設定できます。
INSERT文でデータを挿入する際に、そのカラムに対して値を指定しなかった場合に、設定したデフォルト値が割り当てられる、というものです。
コメント
何故ビューの列にデフォルト値を設定できないのかが分かりません。
この問題の解説部分にも記載の構文の通り、そもそも CREATE VIEW で ビュー名の直後に記述できる列名は、あくまでもビューで使用する列名(列の別名)というだけなので、DEFAULT値云々は元のテーブル側での話となります。
したがって、1番目のSQL文は構文エラーになるため、選択肢「1番目はEMP_VIEWビューの列にデフォルト値を設定できないのでエラーとなる」は正になるかなと思います。
私は古いバージョンのOracle Masterしか持っておらず、実際にこのような問題が実際のBronze DBA 2019試験で出題されるかどうかまではわからないのですが、Ping-tさんの合格体験記などをみてみると、合格された方々の感触として実試験の難易度は黒本よりは高いと言えそうですので、余力があれば、今回の問題についても解説や参考に記載の内容は覚えておいて損はないかもしれません。
コメント
この投稿に対して返信しませんか?
m makotoo0505
2023/12/12 15:02
すみません、表記はデフォルト値でした。