题目
可以将某个22元的商品价格改为18元的视图是?
A.create view v1 as select * from goods where price>20
B.create view v2 as select * from goods where price<20
C.create view v3 as select * from goods where price>20 with check option
D.create view v4 as select * from goods where price<20 with check option
解答
正确答案是 A
通过有with check option选项的视图操作基表(只是面对单表,对连接多表的视图正在寻找答案),有以下结论:
首先视图只操作它可以查询出来的数据,对于它查询不出的数据,即使基表有,也不可以通过视图来操作。
1.对于update,有with check option,要保证update后,数据要被视图查询出来
2.对于delete,有无with check option都一样
4.对于insert,有with check option,要保证insert后,数据要被视图查询出来
对于没有where 子句的视图,使用with check option是多余的。
接前人的答案:1.对于update,有with check option,要保证update后,数据要被视图查询出来。
而update之后,即变为18元之后,“where price>20”就不满足了,所以就不能“保证update后,数据要被视图查询出来。” 。
故不能选C。【纯个人理解】
WITH CHECK OPTION 可确保在视图上update 修改后,通过视图【仍可】看到修改后的数据 ,意思是原来筛选了价格>20的商品,若有【with check option】限制,则不能把视图中的价格修改为18,这样就看不到了,改后的价格必须大于20