欢迎来到天天文库
浏览记录
ID:70679931
大小:1.19 MB
页数:33页
时间:2021-11-24
《最新学习与管饭的我的笔记(4)PPT课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、学习与管饭的我的笔记(4)知识点:视图是一种数据库的对象,是从一个或多个数据表(基本表)或视图导出的虚表,是关系数据库系统提供给用户以多种角度观察数据中数据的重要机制。虚表是指视图只存储了它的定义(select语句),而没有储存视图对应的数据,这些数据仍存放在原来的数据表中,对视图的数据操作与对表的操作一样,可以对其进行改变,若基表的数据发生变化,这种变化也会自动反映到视图中。视图可以是一个表的部分,也可以是多个表的联合。建立视图(续)[例2]建立信息系学生的视图,并要求进行修改和插入操作时仍需保证该视图只有信息系的学生。CREATEVIEWIS_
2、StudentASSELECTSno,Sname,SageFROMStudentWHERESdept='IS'WITHCHECKOPTION;withcheckoption可以这么解释:通过视图进行的修改,必须也能通过该视图看到修改后的结果。比如你insert,那么加的这条记录在刷新视图后必须可以看到;如果修改,修改完的结果也必须能通过该视图看到;如果删除,当然只能删除视图里有显示的记录。我们来看下面的例子:createorreplaceviewtestviewasselectempno,enamefrome
3、mpwhereenamelike‘M%’withcheckoption;这里我们创建了一个视图,并使用了withcheckoption来限制了视图。然后我们来看一下视图包含的结果:select*fromtestview得到:EMPNOENAME———-———–7654MARTIN7934MILLER这两条记录然后我们在试图将其中一条更新:updatetestviewsetename=‘Mike’whereempno=7654;OK,这条更新语句可以执行,并没有什么问题,但是当我们执行另一条更新时:updatetestviewsetename
4、=‘Robin’whereempno=‘7654′;就会出现ORA-01402:视图WITHCHECKOPTIDN违反where子句的错误。建立视图(续)对IS_Student视图的更新操作:修改操作:自动加上Sdept='IS'的条件删除操作:自动加上Sdept='IS'的条件插入操作:自动检查Sdept属性值是否为'IS'如果不是,则拒绝该插入操作如果没有提供Sdept属性值,则自动定义Sdept为'IS
5、9;建立视图(续)基于多个基表的视图[例3]建立信息系选修了1号课程的学生视图。CREATEVIEWIS_S1(Sno,Sname,Grade)ASSELECTStudent.Sno,Sname,GradeFROMStudent,SCWHERESdept='IS'ANDStudent.Sno=SC.SnoANDSC.Cno='1';建立视图(续)基于视图的视图[例4]建立信息系选修了1号课程且成绩在90分以上的学生的视图。CREATEVIEWIS_S2ASSELECTSno,S
6、name,GradeFROMIS_S1WHEREGrade>=90;建立视图(续)分组视图[例6]将学生的学号及他的平均成绩定义为一个视图假设SC表中“成绩”列Grade为数字型CREATVIEWS_G(Sno,Gavg)ASSELECTSno,AVG(Grade)FROMSCGROUPBYSno;建立视图(
此文档下载收益归作者所有