平成23年秋期午後問2

きなこさん  
(No.1)
https://www.fe-siken.com/kakomon/23_aki/pm02.html
問3の問題で質問があります。
何故イが正解ではないのでしょうか。
是非ご教授お願い致します。
2021.11.09 16:53
KanaSatoさん 
(No.2)
ビューはテーブルそのものではありません。

ALTER TABLE ~ DROP構文はテーブルそのものの列を削除するための命令です。

そのため、既に存在するビューの項目から、非表示にしたい列をdropして、その列が削除されたビューを作成するといったことができません。
既に存在するビューを変更する命令は、ALTER VIEWですが、そもそもビューはイメージでいうと指定されたSELECT文が埋め込まれているページです。そのため、ビューの表示内容を変えるのに使うのは、常にSELECTです。
2021.11.10 15:43
きなこさん  
(No.3)
解説ありがとうございます。
理解できました。
2021.11.11 15:32
GinSanaさん 
FE・シルバーエキスパート
(No.4)
まあ、せっかく
Create ○○ AS △△まであるわけだから、このASから何かわからないだろうか?って点から考えてみると、
実はテーブルも
Create Table hoge as select * from fuga
とselectした結果をそのままasで押し込んでクローン(一部クローン)テーブルを作れるわけで、asは「おれはこういうもんだ」という宣言をしているようにも見えると思います。
おれはこういうもんだといってるのにテーブル変更をし始めたらDBも「は?」(名を名乗れっつってんのに別のことをし出すようなもの)ってなるので、このクエリの結果がオレ(View)なんだ、となれば、Selectで、アスタでとったら
ビューで公開する項目は,従業員番号,氏名,課コード,内線とする
が充足できないから絞りこんだ  エ  なわけです。
ちなみにCREATE OR REPLACE VIEWでよくViewは差し替えてます(Alterは使わないな  定義文の使い回しがききにくいので)。
2021.11.11 17:47
きなこさん  
(No.5)
GinSana さん返信ありがとうございます。

つまり、イの回答では、消す項目だけを命令していることから、表示する項目が抜けているという解釈であっていますか?

丁寧な解説をありがとうございます。
2021.11.12 10:32
chihiroさん 
FE・プラチナエキスパート
(No.6)
SQLに精通してないので色々言えないのですが、CREATE VIEWは基本的に、ASで指定した「列」をテーブルみたいに表示するものです。なのでAS以下の文は普通SELECT文になります。(SELECTで表示させたい「列」を抽出するので)
列を指定する決まりなのにALTER文でテーブルそのものを指定すればそりゃDBも「は?」となるだろう、ということでしょう。
2021.11.12 12:04
きなこさん  
(No.7)
chihiro さん
詳しく教えてくださりありがとうございます!
列ではなくテーブルそのものを指定しているところが誤りであるということですね!
ようやく理解できました。
ありがとうございます。
2021.11.16 10:16

返信投稿用フォーム

スパム防止のためにスレッド作成から30日以上経過したスレッドへの書き込みは禁止しています。

その他のスレッド


Pagetop