私は自分自身にSQLを教えようとしていて、行き詰まっています。
Oracleが提供する標準のデモテーブルを使用しています(ここを参照)。
2つの同じビューを作成するとします。
create view view_a_emp as
select empno, ename, job
from emp
where job = 'CLERK';
と
create view view_b_emp as
select empno, ename, job
from emp
where job = 'CLERK';
それぞれについて4行が返されます。
view_b_empを更新すると、次のようになります。
update view_b_emp
set job = 'ASSISTANT';
これで、2つのビューのどちらも行を返さず、基になるベーステーブルが変更されました(すべての「クラーク」が「アシスタント」になりました)。
ビューがどのように機能するかを誤解していることは明らかですが、ビューのアイデアは仮想テーブルを提供することだと思いました。
1つのビューで属性を更新および設定すると、基になるテーブルが変更される理由について、誰かが光を当てることができますか?