Oracle数据库管理与应用实例教程-视图和索引

上传人:我*** 文档编号:136426925 上传时间:2020-06-28 格式:PPT 页数:46 大小:602.50KB
返回 下载 相关 举报
Oracle数据库管理与应用实例教程-视图和索引_第1页
第1页 / 共46页
Oracle数据库管理与应用实例教程-视图和索引_第2页
第2页 / 共46页
Oracle数据库管理与应用实例教程-视图和索引_第3页
第3页 / 共46页
Oracle数据库管理与应用实例教程-视图和索引_第4页
第4页 / 共46页
Oracle数据库管理与应用实例教程-视图和索引_第5页
第5页 / 共46页
点击查看更多>>
资源描述

《Oracle数据库管理与应用实例教程-视图和索引》由会员分享,可在线阅读,更多相关《Oracle数据库管理与应用实例教程-视图和索引(46页珍藏版)》请在金锄头文库上搜索。

1、Oracle数据库管理与应用实例教程,本章学习导航,本章学习导航,本章学习要点,(1)视图的基本知识。 (2)OEM创建、修改、查看和删除视图。 (3)PL/SQL创建、修改、查看和删除视图。 (4)使用视图。 (5)索引的概述。 (6)OEM创建、修改、查看和删除索引。 (7)创建、修改和删除聚集。,6.1 视图概述,视图定义,视图(View)是从一个或多个表(其他视图)中导出的表,其结构和数据是建立在对表的查询基础之上的。所以视图不是真实存在的基础表,而是一张虚表。视图所对应的数据并不实际地以视图结构存储在数据库中,而是存储在视图所引用的表中。 视图一经定义便存储在数据库中,与其相对应的数

2、据并没有像表一样在数据库中另外存储一份,通过视图看到的数据只是存放在基表中的数据。对视图的操作与对表的操作一样,可以对其进行查询、修改(有一定的限制)和删除。 当对视图中的数据进行修改时,相应的基表的数据也要发生变化,同时,如果基表的数据发生变化,则这种变化也可以自动地反映到视图中。,6.1 视图概述,视图特点,(1)视点集中,减少对象大小 视图让用户能够着重于他们所需要的特定数据或所负责的特定要求,如用户可以选择特定行或特定列。 (2)从异构源组织数据 可以在连接两个或多个表的复杂查询的基础上创建视图,这样可以将单个表显示给用户。 (3)隐藏数据的复杂性,简化操作 视图向用户隐藏了数据库设计

3、的复杂性,这样如果开发者改变数据库设计,不会影响到用户与数据库交互。另外,用户可将经常使用的连接查询、嵌套查询或联合查询定义为视图。 (4)简化用户权限的管理 可以将视图的权限授予用户,而不必将基表中某些列的权限授予用户,这样就简化了用户权限的定义。,6.2.1 课堂案例1使用OEM管理视图,掌握Oracle中应用OEM创建视图、修改视图、查看视图和删除视图的方法和基本步骤 。,案例学习目标,视图的定义、OEM创建视图、OEM修改视图、OEM查看视图和OEM删除视图 。,案例知识要点,6.2.1 课堂案例1使用OEM管理视图,案例完成步骤,1使用OEM创建视图 (1)进入OEM后,依次选择“方

4、案”、“视图”,进入“视图” 页面 (2)单击“创建”按钮,进入“创建视图”页面,添加标题文字,2使用OEM修改视图 (1)重命名视图 重命名视图在OEM中不能直接完成,只能先删除原有的视图,再新建对应的视图。 (2)修改视图定义 (a)在指定方案的“视图”页面中,选择要编辑的视图,单击“编辑”按钮,进入“编辑视图”页面 (b)在“查询文本”中可以完成视图对应的SQL语句的修改操作,修改完成后,单击“编译”按钮可以进行编译 (c)在完成视图编辑和编译后,单击“应用”按钮,完成对指定视图的修改操作。,6.2.1 课堂案例1使用OEM管理视图,案例完成步骤,3使用OEM查看视图 (1)在指定方案的

5、“视图”页面中,选择要编辑的视图,单击“查看”按钮,进入“查看视图”页面 (2)在视图的“查看”页面中,可以查看到视图的名称、视图的方案、别名、视图状态和查询文本等,6.2.1 课堂案例1使用OEM管理视图,案例完成步骤,添加标题文字,6.2.1 课堂案例1使用OEM管理视图,案例完成步骤,4使用OEM删除视图 (1)在指定方案的“视图”页面中,选择要编辑的视图,单击“删除”按钮,进入“确认删除”页面 (2)单击“是”按钮,将删除指定的视图,添加标题文字,6.2.2 课堂案例2使用PL/SQL管理视图,掌握Oracle中应用PL/SQL创建视图、修改视图、查看视图和删除视图的基本语句和使用方法

6、 。,案例学习目标,PL/SQL创建简单视图、PL/SQL创建只读视图、PL/SQL创建检查视图、PL/SQL创建连接视图、PL/SQL创建复杂视图、PL/SQL创建强制视图、PL/SQL修改视图、PL/SQL查看视图和PL/SQL删除视图 。,案例知识要点,1使用PL/SQL创建视图 (1)创建简单视图。 【例2-1】 经常需要了解“热点”商品的商品号(g_ID)、商品名称(g_Name)、类别号(t_ID)、商品价格(g_Price)、商品折扣(g_Discount)和商品数量(g_Number)信息,可以创建一个“热点”商品的视图。 CREATE OR REPLACE VIEW SCOT

7、T.vw_HotGoods AS SELECT g_ID AS 商品号, g_Name AS 商品名称, t_ID AS 类别号, g_Price AS 价格, g_Discount AS 折扣, g_Number AS 数量 FROM SCOTT.Goods WHERE g_Status = 热点;,6.2.2 课堂案例2使用PL/SQL管理视图,案例完成步骤,6.2.2 课堂案例2使用PL/SQL管理视图,案例完成步骤,(2)创建只读视图。 在创建视图时,可以使用WITH READ ONLY选项创建只读视图。 【例2-2】 经常需要了解员工的编号(e_ID)、名称(e_Name)、家庭地址

8、(e_Address)、邮政编码(e_PostCode)和手机号码(e_Mobile)信息,要求能够通过视图来查询这些信息(但不能通过视图更改这些信息)。 CREATE VIEW SCOTT.vw_emp_readonly AS SELECT e_ID,e_Name,e_Address,e_PostCode,e_Mobile FROM SCOTT.employees WITH READ ONLY;,(3)创建检查视图。 在创建视图时,可以使用WITH CHECK OPTION选项创建检查视图。 【例2-3】 经常需要了解海尔公司商品的商品号(g_ID)、商品名称(g_Name)、商品价格(g_

9、Price)、商品折扣(g_Discount)和商品数量(g_Number)信息,可以创建一个关于海尔商品的视图。 CREATE OR REPLACE VIEW SCOTT.vw_HaierGoods AS SELECT g_ID, g_Name, g_Price,g_Discount,g_Number FROM SCOTT.Goods WHERE g_Name LIKE %海尔% WITH CHECK OPTION;,6.2.2 课堂案例2使用PL/SQL管理视图,案例完成步骤,(4)创建连接视图 连接视图是指基于多个表所创建的视图,即定义视图的查询是一个连接查询。使用连接视图的主要目的是为

10、了简化连接查询。 【例2-4】 经常需要了解商品的商品号(g_ID)、商品名称(g_Name)、类别名称(t_Name)和商品价格(g_Price)信息,可以创建一个关于这类商品的视图。 CREATE OR REPLACE VIEW SCOTT.vw_TNameGoods AS SELECT g_ID, g_Name, t_Name, g_Price FROM SCOTT.Goods JOIN Types ON Goods.t_ID=Types.t_ID WITH CHECK OPTION,6.2.2 课堂案例2使用PL/SQL管理视图,案例完成步骤,(5)创建复杂视图。 复杂视图是指包含函数

11、、表达式或分组数据的视图,主要目的是为了简化查询。 【例2-5】 经常需要了解某一类商品的类别号(t_ID)和该类商品的最高价格信息,可以创建一个关于这类商品的视图。 CREATE OR REPLACE VIEW SCOTT.vw_MaxPriceGoods AS SELECT t_ID, Max(g_Price) AS MaxPrice FROM SCOTT.Goods GROUP BY t_ID,6.2.2 课堂案例2使用PL/SQL管理视图,案例完成步骤,6.2.2 课堂案例2使用PL/SQL管理视图,案例完成步骤,(6)强制创建视图 正常情况下,如果基表不存在,创建视图就会失败。但是可

12、以使用FORCE选项强制创建视图(前提是创建视图的语句没有语法错误),但此时该视图处于失效状态。 【例2-6】创建并验证基于Test表的强制视图 (a)在Test表不存在的情况下,创建基于该表的强制视图vw_TestForce。 CREATE FORCE VIEW SCOTT.vw_TestForce AS SELECT c1,c2 FROM Test; 以上语句执行后,视图创建成功,但会出现警告信息,视图状态为INVALID状态。,6.2.2 课堂案例2使用PL/SQL管理视图,案例完成步骤,在实际应用中,随着查询要求的改变和数据源的变化: 更改视图只是改变数据字典中对该视图的定义信息,视图

13、的所有基础对象都不会受到任何影响; 更改视图之后,依赖于该视图的所有视图和PL/SQL程序都将变为INVALID(失效)状态; 如果以前的视图中具有WITH CHECK OPTION选项,但是重定义时没有使用该选项,则以前的此选项将自动删除。 2使用PL/SQL修改视图 (1)重命名视图 【例2-7】重命名用户方案SCOTT的视图vw_MaxPriceGoods为vw_MaxPrice。 rename vw_MaxPriceGoods TO vw_MaxPrice;,6.2.2 课堂案例2使用PL/SQL管理视图,案例完成步骤,2使用PL/SQL修改视图 (2)修改视图定义 【例2-8】 对于

14、已创建的视图vw_HotGoods,现在需要删除其中的折扣(g_Discount)信息,使之仅包含商品的商品号(g_ID)、商品名称(g_Name)、类别号(t_ID)、价格(g_Price)和数量(g_Number)信息。 CREATE OR REPLACE VIEW SCOTT.vw_HotGoods AS SELECT g_ID AS 商品号, g_Name AS 商品名称, t_ID AS 类别号, g_Price AS 价格, g_Number AS 数量 FROM SCOTT.Goods WHERE g_Status = 热点,6.2.2 课堂案例2使用PL/SQL管理视图,案例完

15、成步骤,(3)重新编译视图 可以使用PL/SQL的ALTER VIEW语句重新编译视图。 ALTER VIEW 视图名 COMPILE; 当视图依赖的基表改变后,视图会“失效”。为了确保这种改变“不影响”视图和依赖于该视图的其他对象,应该使用ALTER VIEW 语句明确的重新编译该视图,从而在运行视图前发现重新编译的错误。视图被重新编译后,若发现错误,则依赖该视图的对象也会失效;若没有错误,视图会变为“有效”。,3使用PL/SQL查看视图 Oracle的PL/SQL语句提供了DESCRIBE命令用来查看视图的信息,其基本语法格式为: DESCRIBE 用户方案.视图名; 【例2-9】查看用户

16、方案SCOTT的视图VW_HOTGOODS的信息。 DESC SCOTT.VW_HOTGOODS;,6.2.2 课堂案例2使用PL/SQL管理视图,案例完成步骤,6.2.2 课堂案例2使用PL/SQL管理视图,案例完成步骤,4使用PL/SQL删除视图 Oracle的PL/SQL语句提供了DROP VIEW命令来删除视图(必须保证当前用户具有DROP ANY VIEW的系统权限),其基本语法格式为: DROP VIEW 用户方案.视图名; 【例2-10】删除用户方案SCOTT的视图.VW_TNAMEGOODS的信息。 DROP VIEW SCOTT.VW_TNAMEGOODS;,课堂案例3使用视图,掌握Oracle中通过视图进行查询和DML操作的基本方法和注意事项 。,案例学习目标,通过视图查询数据、通过视图添加数据、通过

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号