第3章关系数据库标准语言SQL案例.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于多个基本表的视图 [例3] 建立水建学院选修了001号课程的学生视图。 CREATE VIEW SJ_SC(Sno,Sname,Grade) AS SELECT S.Sno,Sname,Grade FROM S,SC WHERE Sdept= ‘水建 AND S.Sno=SC.Sno AND SC.Cno= 001; 3.6.1 定义视图 基于视图的视图 [例4] 建立水建学院选修了001号课程且成绩在90分以上的学生的视图。 CREATE VIEW SJ_SC2 AS SELECT Sno,Sname,Grade FROM SJ_SC WHERE Grade=90 3.6.1 定义视图 带表达式的视图 [例5] 定义一个反映学生年龄的视图。 CREATE VIEW V_age(Sno,Sname,Sage) AS SELECT Sno,Sname, trunc((sysdate-Sbirth)/365) FROM S 3.6.1 定义视图 建立分组视图 [例6] 将学生的学号及他的平均成绩定义为一 个视图。 CREATE VIEW S_G(Sno,Gavg) AS SELECT Sno,AVG(Grade) FROM SC GROUP BY Sno; 3.6.1 定义视图 删除视图语句格式: DROP VIEW 视图名; 该语句从数据字典中删除指定的视图定义 由该视图导出的其他视图定义仍在数据字典中,但已不能使用,必须显式删除 删除基表时,由该基表导出的所有视图定义都必须显式删除 3.6.1 定义视图 [例7] 删除视图XX_S DROP VIEW XX_S; 3.6.1 定义视图 3.6 视 图 3.6.1 定义视图 3.6.2 查询视图 3.6.3 更新视图 3.6.4 视图的作用 3.6.2 查询视图 从用户角度:查询视图与查询基本表相同 DBMS实现视图查询的方法 视图消解法(View Resolution) 进行有效性检查,检查查询的表、视图等是否存在。如果存在,则从数据字典中取出视图的定义 把视图定义中的子查询与用户的查询结合起来,转换成等价的对基本表的查询 执行修正后的查询 3.6.2 查询视图 [例1] 在植保学院学生的视图中找出年龄小于20岁的学生。 SELECT Sno,Sage FROM ZB_S WHERE Sage20; ZB_S视图的定义: CREATE VIEW ZB_S AS SELECT Sno,Sname,Sage,Sdept FROM S WHERE Sdept= ‘植保; 3.6.2 查询视图 视图消解法 转换后的查询语句为: SELECT Sno,Sage FROM S WHERE Sdept=‘植保’ AND Sage20; 3.6 视 图 3.6.1 定义视图 3.6.2 查询视图 3.6.3 更新视图 3.6.4 视图的作用 3.6.3 更新视图 用户角度:更新视图与更新基本表相同 DBMS实现视图更新的方法 视图消解法(View Resolution) 指定WITH CHECK OPTION子句后 DBMS在更新视图时会进行检查,防止用户通过视图对不属于视图范围内的基本表数据进行更新 3.6.3 更新视图 [例1] 将植保学院学生视图ZB_S中学号04003的学生姓名改为“刘辰”。 UPDATE ZB_S SET Sname= 刘辰 WHERE Sno= ‘04003; 转换后的语句: UPDATE S SET Sname= 刘辰 WHERE Sno= ‘04003’ AND Sdept= ‘植保; 更新视图的限制 一些视图是不可更新的,因为对这些视

文档评论(0)

4477769 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档