第六章 查询与视图
- 格式:ppt
- 大小:362.00 KB
- 文档页数:59
第六章视图1.概述✓视图(View)是从一个或多个表(其他视图)中导出的表,其结构和数据是建立在对表的查询基础之上的。
所以视图不是真实存在的基础表,而是一张虚表。
视图所对应的数据并不实际地以视图结构存储在数据库中,而是存储在视图所引用的表中。
✓视图一经定义便存储在数据库中,与其相对应的数据并没有像表一样在数据库中另外存储一份,通过视图看到的数据只是存放在基表中的数据。
对视图的操作与对表的操作一样,可以对其进行查询、修改(有一定的限制)和删除。
✓当对视图中的数据进行修改时,相应的基表的数据也要发生变化,同时,如果基表的数据发生变化,则这种变化也可以自动地反映到视图中2.视图的特点1.视点集中,减少对象大小视图让用户能够着重于他们所需要的特定数据或所负责的特定要求,如用户可以选择特定行或特定列。
2.从异构源组织数据可以在连接两个或多个表的复杂查询的基础上创建视图,这样可以将单个表显示给用户。
3.隐藏数据的复杂性,简化操作视图向用户隐藏了数据库设计的复杂性,这样如果开发者改变数据库设计,不会影响到用户与数据库交互。
另外,用户可将经常使用的连接查询、嵌套查询或联合查询定义为视图。
4.简化用户权限的管理可以将视图的权限授予用户,而不必将基表中某些列的权限授予用户,这样就简化了用户权限的定义。
3.视图的四种类型✓关系视图:关系视图(relational view)基本上就是经过存储的查询,可以将它的输出看作是一个表。
它就是基于关系数据的存储对象。
✓内嵌视图:又称为嵌套查询,是嵌入到父查询中的查询,能够在任何可以使用表名称的地方使用。
✓对象视图:为了迎合数据库中对象类型而将关系表投射到特定数据类型的虚拟对象表中,视图的每行都是带有属性、方法和唯一标识(OID)的对象实例。
✓物化视图:就是在数据库中查询结果存储在视图中,并支持查询重写、刷新、提交等特性的视图4.视图的创建及管理a)关系视图语法:用户赋予create view的权限查看视图可以通过User_views,All_views,Dba_views来查询视图信息例如:1.创建普通关系视图【可对视图执行DML操作】2.创建只读视图3.创建检查视图4.创建连接视图5.创建复杂视图特点:复杂视图是指包含函数、表达式或分组数据的视图,主要目的是为了简化查询create or replace view view_emp as select count(*) 人数,avg(sal+nvl(comm,0)) 平均工资,deptno 部门编号 from emp groupby deptno;6.创建强制视图特点:正常情况下,如果基表不存在,创建视图就会失败。
查询与视图设计知识点在数据库管理系统中,查询和视图是两个重要的概念。
查询用于检索数据库中的数据,而视图则是一个虚拟表,基于一个或多个表的查询结果。
本文将介绍查询和视图设计的相关知识点。
一、查询查询是在数据库中检索数据的方式之一,它可以帮助我们从数据库中获取所需的数据。
下面是一些常用的查询语句:1. SELECT语句SELECT语句用于从数据库表中选择数据。
可以使用某些条件过滤结果,也可以选择指定的列进行检索。
例如:```SELECT 列名1, 列名2 FROM 表名 WHERE 条件;```2. WHERE子句WHERE子句用于在查询中添加条件。
可以使用比较运算符(如等于、大于、小于等)和逻辑运算符(如AND、OR)来定义条件。
例如:```SELECT * FROM 表名 WHERE 列名 = 值;```3. ORDER BY子句ORDER BY子句用于对结果进行排序。
可以按照一个或多个列进行升序或降序排序。
例如:```SELECT * FROM 表名 ORDER BY 列名 ASC/DESC;```4. GROUP BY子句GROUP BY子句用于根据指定列对结果进行分组。
通常与聚合函数(如SUM、COUNT等)一起使用。
例如:```SELECT 列名, 聚合函数 FROM 表名 GROUP BY 列名;```二、视图视图是一个虚拟表,它是基于一个或多个表的查询结果。
与表不同,视图并不存储实际的数据,它只是根据查询的结果动态生成。
下面是一些视图设计的知识点:1. 创建视图可以使用CREATE VIEW语句来创建一个视图。
语法如下:```CREATE VIEW 视图名 AS 查询语句;```2. 更新视图视图是基于一个或多个表的查询结果,所以不能直接通过视图来更新数据。
但是可以通过更新基本表中的数据来间接地更新视图中的数据。
3. 可更新视图可以创建可更新的视图,这样就可以直接通过视图来更新数据。
1.视图是操作表的一种手段,通过视图可以查询表,也可以更新表,所以利用视图可以修改数据;而查询是从指定的表或视图中提取满足条件的记录,然后按照想得到的输出类型定向输出查询结果,所以查询不能修改数据,而查询可以定义输出去向;很明显,查询和视图具有不同的作用。
2.查询是预先定义好的一个SQL SELECT语句,在不同的场合可以直接或反复使用,从而提高效率。
查询是从指定的表或视图中提取满足条件的记录,然后按照想得到的输出类型定向输出查询结果。
从普通检索数据的角度来讲,查询和视图基本具有相同的作用。
但是查询可以定义输出去向,可以将查询的结果灵活地应用于表单、报表、图形等各种场合,但是利用查询不可以修改数据,而利用视图可以修改数据。
3.在磁盘上,查询是一个以扩展名为.qpr独立保存的文本文件,4. 在visual foxpro中可以通过SQL的CREATE命令新建文件,CREATE FORM命令用于新建一个表单,CREA TE QUERY命令可新建一个查询,CREATE VIEW命令用于新建一个视图,视图不是一个独立的文件5.视图是一个虚拟表。
所谓虚拟,是因为视图的数据是从已有的数据库表或其他视图中抽象得来的,这些数据在数据库中并不实际存储,仅在其数据字典中存储视图的定义。
但视图一经定义,就成为数据库的组成部分,可以像数据库表一样接受用户的查询。
6.视图是操作表的一种手段,通过视图可以查询表,也可以更新表。
视图是根据表定义的,因此视图基于表。
视图是数据库的一个特有功能,只有在包含视图的数据库打开时,才能使用视图。
在自由表中可以建立视图。
7.在Visual FoxPro中,视图是一个定制的虚拟表,它始终不曾真正地含有数据,它总是原来表的一个窗口;视图的结果保存在数据库中,在磁盘上找不到类似的文件。
8.视图文件的扩展名是.VUX9.DO用于运行命令程序。
可用USE命令打开视图和关闭视图。
BROWSE可以显示视图数据。