第3章 SQL(3.6.视图).pptVIP

  • 9
  • 0
  • 约 39页
  • 2016-12-23 发布于重庆
  • 举报
2007-6-16 APWeb/WAIM2007 Huang Shan 2007-6-16 APWeb/WAIM2007 Huang Shan 2007-6-16 第三章 关系数据库标准语言SQL 3.1 SQL概述 3.2 学生-课程数据库 3.3 数据定义 3.4 数据查询 3.5 数据更新 3.6 视图 3.7 小结 3.6 视 图 视图是关系数据库系统提供给用户的多种角度观察数据库中数据的重要机制。 视图是从一个或n个基本表(视图)导出的表,它与基本表不同,是一个虚表。 数据库中只存放视图的定义,而不存放视图对应的数据,这些数据仍存放在原来的基本表中。 基表中的数据发生变化,从视图中查询出的数据也随之改变。 视图在概念上与基本表等同,用户可以在视图上再定义视图,可以对视图进行查询、删除、更新等操作。 3.6 视 图 基于视图的操作 查询 删除 受限更新 定义基于该视图的新视图 3.6 视 图 3.6.1 定义视图 3.6.2 查询视图 3.6.3 更新视图 3.6.4 视图的作用 3.6.1 定义视图 建立视图 删除视图 一、建立视图 语句格式 CREATE VIEW 视图名 [(列名 [,列名]…)] AS 子查询 [WITH CHECK OPTION]; 组成视图的属性列名:全部省略或全部指定 子查询不允许含有ORDER BY子句和DISTINCT 短语。如果需要排序,则可在视图定义后,对视图查询时再进行排序。 建立视图(续) 视图定义存入数据字典,并不执行其中的SELECT语句。 视图定义被编译后存储,因此执行效率高。 在对视图查询时,按视图的定义从基本表中将数据查出。 视图类型 行列子集视图 从单个基本表导出,包含了主码; 并且只是去掉了基本表的某些行和某些列的视图 带表达式的视图 带虚拟列的视图 分组视图 用带有集函数和GROUP BY子句的查询来定义的视图 建立视图(续) [例1] 建立信息系学生的视图。 CREATE VIEW IS_Student AS SELECT Sno,Sname,Sage FROM Student WHERE Sdept= IS; 建立视图(续) [例2]建立信息系学生的视图,并要求进行修改和插入操作时仍需保证该视图只有信息系的学生 。 CREATE VIEW IS_Student AS SELECT Sno,Sname,Sage FROM Student WHERE Sdept= IS WITH CHECK OPTION; 建立视图(续) 对IS_Student视图的更新操作: 修改操作:自动加上Sdept= IS的条件 删除操作:自动加上Sdept= IS的条件 插入操作:自动检查Sdept属性值是否为IS 如果不是,则拒绝该插入操作 如果没有提供Sdept属性值,则自动定义Sdept为IS 建立视图(续) 基于多个基表的视图 [例3] 建立信息系选修了1号课程的学生视图。 CREATE VIEW IS_S1(Sno,Sname,Grade) AS SELECT Student.Sno,Sname,Grade FROM Student,SC WHERE Sdept= IS AND Student.Sno=SC.Sno AND SC.Cno= 1; 建立视图(续) 基于视图的视图 [例4] 建立信息系选修了1号课程且成绩在90分以上的学生的视图。 CREATE VIEW IS_S2 AS SELECT Sno,Sname,Grade FROM IS_S1 WHERE Grade=90; 建立视图(续) 带表达式的视图 [例5] 定义一个反映学生出生年份的视图。 CREATE VIEW BT_S(Sno,Sname,Sbirth) AS SELECT Sno,Sname,2000-Sage FROM Student; 建立视图(续) 分组视图 [例6] 将学生的学号及他的平均成绩定义为一个视图

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档