文档详情

数据库sql视图、存储过程与函数.ppt

发布:2017-06-14约1.73千字共15页下载文档
文本预览下载声明
数据库原理与应用教程 国家“十一五”规划教材 第5章 视图 5.1 视图概念 5.2 定义视图 5.3 通过视图查询数据 5.4 删除视图 5.5 视图的作用 5.1 视图概念 视图可以被看成是虚拟表。 视图中的数据不物理地存储在数据库内。 SELECT 语句的结果集构成了视图的内容。 5.2 定义视图 语法: CREATE VIEW 视图名 [(视图列名表)] AS 查询语句 定义单源表视图 建立信息系学生的视图。 CREATE VIEW IS_Student AS SELECT Sno, Sname, Sage FROM Student WHERE Sdept = 信息系 定义多源表视图 建立信息系选修了‘c01’号课程的学生的视图。 CREATE VIEW V_IS_S1(Sno, Sname, Grade) AS SELECT Student.Sno, Sname, Sage FROM Student JOIN SC ON Student.Sno = SC.Sno WHERE Sdept = 信息系 AND SC.Cno = c01 在已有视图上定义新视图 建立信息系选修了‘c01’号课程且成绩在90分以上的学生的视图。 CREATE VIEW V_IS_S2 AS SELECT Sno, Sname, Grade FROM V_IS_S1 WHERE Grade = 90 定义带表达式的视图 定义一个反映学生出生年份的视图。 CREATE VIEW BT_S(Sno, Sname, Sbirth) AS SELECT Sno, Sname, 2005-Sage FROM Student 含分组统计信息的视图 定义一个存放每个学生的学号及平均成绩的视图。 CREATE VIEW S_G(Sno, AverageGrade) AS SELECT Sno, AVG(Grade) FROM SC GROUP BY Sno 5.3 通过视图查询数据 通过视图查询数据同通过基本表查询数据一样。 首先把对视图的查询转换成等价的对基本表的查询。 然后再执行转换后的查询。 示例1 例1.利用IS_Student视图,查询信息系年龄小于20岁的学生。 SELECT Sno, Sname, Sage FROM IS_Student WHERE Sage 20 转换成的实际查询为: SELECT Sno, Sname, Sage FROM Student WHERE Sdept = 信息系 AND Sage 20 示例2 例2.利用IS_Student视图,查询信息系选修了‘C01’课程的学生的学号和姓名。 SELECT Sno, Sname, Sage FROM IS_Student JOIN SC ON IS.Student.Sno = SC.Sno WHERE Cno = C01 示例3 例3.利用S_G视图,查询平均成绩90分以上的学生的学号和平均成绩。 SELECT * FROM S_G WHERE AverageGrade 90 转换语句是: SELECT Sno, AVG(Grade) FROM SC GROUP BY Sno HAVING AVG(Grade) 90 5.4 删除视图 格式: DROP VIEW 视图名 例.删除前边定义的IS_Student视图。 DROP VIEW IS_Student 5.5 视图的作用 简化数据查询语句 使用户能从多角度看到同一数据 提高了数据的安全性 提供了一定程度的逻辑独立性 * * 基本表1 基本表2 视图
显示全部
相似文档