第四章关系数据库标准语言SQL(三).pptVIP

  1. 1、本文档共78页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第四章 关系数据库标准语言SQL(三) 4.6 视图(View) 视图(View)给出了SQL数据库的外模式定义 1、视图的概念 视图是从一个或几个基本表中导出的虚拟表,其数据没有实际存储,但可以和表一样操作 视图具有和表一样的逻辑结构定义 但视图没有相应的存储文件,而每个表都有相应的存储文件 2、视图的用途 逻辑数据独立性:用户程序与数据库结构 简化了用户眼中的数据,使用户可以集中于所关心的数据上 同一数据库对不同用户提供不同的数据呈现方式 安全保护 4.6.1 定义视图 Create View 视图名(列名1,列名2,…) AS 子查询 [ With Read Only ] [ With Check Option ] 子查询是一个Select语句,指明视图定义在哪些基本表上,定义了什么内容的数据; 列名表定义了视图的逻辑结构,与查询中返回的数据相对应(列名或者全部省略或者全部指定); 若加上With Read Only选项表示所定义的视图是只读视图; 若加上With Check Option选项表示对视图进行UPDATE、INSERT和DELETE操作时要保证进行这三种操作的条件要满足子查询中的条件表达式。 4.6.1 定义视图 例1:定义计算机系的学生视图 Create View cs_view (sno, name, age) As Select sno,sname,age From student Where Dept=‘计算机系‘ With Read Only; Create View cs_view As Select sno,sname,age From student Where Dept=‘计算机系‘ With Read Only; 若省略视图的列名表,则自动获得Select查询返回的列名 4.6.1 定义视图 例2:把每门课程的课程号和平均成绩定义为一个视图 Create View c_view As Select cno, AVG(score) as avg_score From sc Group By cno; 或 Create View c_view (cno, avg_score) As Select cno, AVG(score) From sc Group By cno; 在查询中使用了函数时 若省略列名表,则必须为函数指定别名 若使用了列名表,则可以不指定函数的别名 4.6.1 定义视图 [例77] 建立信息系学生的视图,并要求进行修改和插入操作时仍需保证该视图只有信息系的学生。 Create View Is_student As Select Sno,Sname,Sage From student Where Sdept=‘IS‘ With Check Option; 由于有With Check Option子句,以后对该视图进行插、改、删操作时,DBMS会自动加上Sdept=‘IS‘条件。 4.6.1 定义视图 [例78] 建立信息系选修了1号课程学生的视图。 Create View IS_S1 As Select Student.Sno,Sname,Grade From student,sc Where Sdept=‘IS‘ AND sc.Sno AND SC.Cno=‘1’; 由于视图IS_S1的属性列包含了Student表与SC表的同名列Sno,所以必须在视图名后面明确说明视图的各个属性列名。 4.6.1 定义视图 [例79] 建立信息系选修了1号课程且成绩在90分以上的学生的视图。 Create View IS_S2 As Select Sno,Sname,Grade From IS_S1 Where Grade=90; 这里的视图IS_S2就是建立在视图IS_S1之上的。 4.6.2 查询视图 与基本表的查询相同 例:查询平均成绩在80分以上的课程号与课程名 不使用视图 Select a.cno, a.cname From Course a,(select cno,avg(score) as avg_score From sc Group By cno) SC2 Where a.cno=sc2.cno and SC2.avg_score80 使用前面定义的视图 c_view Select a.cno, a.cname From course a, c_view b Where a.cno=b.cno 4.6.2 查询视图 [例84] 在信息系学生的视图中找出年龄

文档评论(0)

shaoye348 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档