视图详解:含分组统计信息的逻辑窗口

需积分: 17 0 下载量 83 浏览量 更新于2024-08-23 收藏 332KB PPT 举报
"本资源主要讨论含分组统计信息的视图在数据库中的应用,以及视图的概念、定义和使用规则。" 在数据库系统中,视图是一个非常重要的概念,它提供了一种从不同角度查看数据的方式。视图是由基本表中选择的数据组成的逻辑窗口,它们是虚拟的,不存储实际数据,而是依赖于底层的基本表。第五章主要介绍了含分组统计信息的视图,这种视图的子查询中包含GROUP BY子句,用于对数据进行分组并计算统计信息。 例如,我们可以创建一个名为S_G的视图,该视图显示每个学生的学号(Sno)及其平均成绩(AverageGrade)。在创建这个视图时,我们需要使用SELECT Sno, AVG(Grade) FROM SC GROUP BY Sno的SQL语句,其中AVG函数用于计算平均成绩,GROUP BY Sno则是按学生学号进行分组。值得注意的是,如果选择列表包含表达式或统计函数,并且子查询中没有为这些列指定列标题,那么在定义视图时必须明确指定视图属性列的名字。 视图的定义通常使用CREATE VIEW语句,它可以基于一个或多个基本表,或者已有的视图。当定义视图时,可以指定视图列名,或者全部省略,如果省略,列名将默认与子查询中的列名相同。但是,在特定情况下,如列是计算函数的结果、存在同名列或需要重命名列时,必须明确指定所有列名。 视图可以分为单源表视图和多源表视图。单源表视图是从一个基本表中选取部分行和列,这类视图允许查询和数据修改操作。例如,定义信息系学生的视图,可以使用WHERE子句过滤出特定条件(如部门为'信息系')的记录。而多源表视图涉及多个源表,通常用于查询,不建议用于数据修改,因为它可能涉及到复杂的关联操作,如例子中信息系选修了'c01'号课程的学生视图,需要JOIN两个表Student和SC。 此外,还可以在已有视图的基础上定义新视图,这意味着视图的数据源可以是其他视图。这为数据查询提供了更多的灵活性,但需要注意的是,视图的修改操作会回溯到底层的基本表,因此对只读视图的操作可能会受到限制。 含分组统计信息的视图是一种强大的工具,它简化了复杂查询,提供了统计数据,并且可以通过视图的层次结构来组织和抽象数据库的数据。然而,它们也有其限制,如不能用于直接更新数据,且在设计时需考虑查询效率和数据一致性问题。正确理解和使用视图对于优化数据库查询和管理信息至关重要。