DB2关于视图的规定

1)若视图是由两个以上基本表导出的,则此视图不允许更新。
2)若视图的字段来自字段表达式或常数,则不允许对此视图执行INSERT和UPDATE操作,但允许执行delete操作。
3)若视图的字段来自聚集函数,则此视图不允许更新
4)若视图定义中含有Group By子句,则此视图不允许更新
5)若视图定义中含有DISTINGCT短语,则此视图不允许更新
6)若视图定义中有嵌套查询,并且内层查询的from子句中设计的表也是导出该视图的基本表,则此视图不允许更新。例如,将SC中成绩在平均成绩之上的元组定义成一个视图GOOD_SC:
CREATE VIEW GOOD_SC
AS 
SELECT Sno,Cno,Grade
FROM SC
WHERE Grade >
(
SELECT AVG(Grade)
FROM SC
);
不允许更新
7)一个不允许更新的视图也是不允许更新。


另外:适当的利用视图可以更加清晰的表达查询
例如经常需要执行“对每个学生找出他获得最高成绩的课程号”,可以先定义一个视图,求出每个学生最高成绩:
CERATE VIEW VMGRADE
AS
SELECT Sno,MAX(Grade) Mgrade
FROM SC
GROUP BY Sno
然后用如下的查询语句完成查询:
SELECT SC.Sno,Cno
FROM SC,VMGRADE
WHERE SC.Sno = VMGRADE.Sno AND SC.Grade = VMGRADE.Mgrade;

这样子查询变的好简单了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值