《创建视图》-课件设计.ppt
文本预览下载声明
目标 结束本节课后,应当达到如下目标: 描述什么是视图? 创建视图 从视图中检索出数据 更改视图的定义 通过视图更改、删除、增加数据 删除视图 数据库对象 什么是视图? 为什么使用视图? 限制数据的存取 使得复杂的查询变得容易 使得数据相对比较独立 代表对同一数据的不同视角 简单视图和复杂视图 特点 简单视图 复杂视图 表的数量 一个 一个或者更多 约束函数 没有 有 是否包含分组 不 是 可以对视图进行更新 是 不一定 创建一个视图 在 CREATE VIEW 语句中包含一个子查询. 子查询中可以包含复杂的 SELECT 语法. 创建视图 创建一个视图,EMPVU10, 包含部门号为10的雇员信息. 创建视图 创建视图时,可以在列的子查询中使用别名. 可以根据给定的列别名,从视图中获取列的信息. 从视图中获取列信息 查询一个视图 视图的数据更新 使用 CREATE 或者 REPLACE VIEW 子句来更新EMPVU10视图. 为每一个列名增加一个别名. 在 CREATE VIEW子句中的列别名应当与子查询中的列别名相同. 创建复杂的视图 创建一个复杂的视图,视图的数据来自于两个表,而且视图定义中含有几个函数: 对视图进行DML操作的规则 可以对简单视图进行DML操作. 如果含有如下情况,则不能删除视图中的数据: 含有Group函数 含有GROUP BY 子句 含有 DISTINCT 关键字 含有ROWNUM 这个伪列 在一个视图上执行DML 操作的规则 如果一个视图包含下列情况,则不能修改该视图中的数据: 上一个幻灯片提到的任何一种情况。 列是由表达式来进行定义的。 含有ROWNUM 伪列。 如果有下列情况,则不能增加数据: 视图中包含上述和上一个幻灯片的任何一种情况。 在基表中包含有 NOT NULL约束的列,然而该列并没有在视图中出现。 禁止进行DML操作 在视图定义中,可以使用WITH READ ONLY选项来保证该视图上不能进行DML操作. 该视图任何数据行上的DML语句操作都将被Oracle服务器禁止. 删除视图 删除一个视图不会丢失数据,因为视图的数据本来就是来自于数据库中的表。 内联(inline)视图 内联视图是在 嵌在某个SQL 语句中,具有别名的一个子查询. 一个内联视图类似于在FROM子句中使用的一个具有名字的子查询. 一个内联视图不是数据库中的一个模式对象 内联视图举例 SELECT a.ename, a.sal, a.deptno, b.maxsal FROM emp a, (SELECT deptno, max(sal) maxsal FROM emp GROUP BY deptno) b WHERE a.deptno = b.deptno AND a.sal b.maxsal; 总结 一个视图是从数据库表中或者其他视图中获取的数据的集合. 视图提供了下列的优点: 限制数据库的存取 简化查询 提供数据独立性 产生同一数据上的多个视角 可以在不删除数据的情况下删除视图 作业概览 创建简单视图 创建复杂视图 创建具有约束的视图 修改视图中的数据 展示视图的定义 删除视图 本课程版权归北风网所有 欢迎访问我们的官方网站 What Is a View? You can present logical subsets or combinations of data by creating views of tables. A view is a logical table based on a table or another view. A view contains no data of its own but is like a window through which data from tables can be viewed or changed. The tables on which a view is based are called base tables. The view is stored as a SELECT statement in the data dictionary. Advantages of Views Views restrict access to the data because the view can display selective columns from the table. Views allow users to make simple queries to retrieve the results from complic
显示全部