第8章Oracle中的视图.pptVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
目标 视图 视图是存储在数据库中的查询的SQL语句。 安全原因,视图可以隐藏一些数据。 可使复杂的查询易于理解和使用。 视图的作用 使用视图的好处是: 简单性。看到的就是需要的。视图不仅可以简化用户对数据的理解,也可以简化用户的操作。 安全性。通过视图用户只能查询和修改他们所能见到的数据。数据库中的其它数据则既看不见也取不到。 逻辑数据独立性。视图可以使应用程序和数据库表在一定程度上独立。如果没有视图,应用一定是建立在表上的。 视图的分类 视图可以从操作上分为: 简单视图:基于一个基表建立的简单查询视图 复杂视图:包含表达式、函数或分组数据的视图 连接视图:基于多个基表的连接查询所建立的视图 只读视图:只允许SELECT操作的视图 视图操作原则 建立视图后,对视图的操作与对表的操作一样。但是,在视图上执行DML操作时,除需复合约束规则,还必须满足一些其他原则: UPDATE和DELETE原则: 如果视图包含GROUP BY子句、分组函数、DISTINCT关键字、ROWNUM伪列或使用表达式定义的列,那么不能在该视图上执行操作。 INSERT原则: 如果视图包含GROUP BY子句、分组函数、DISTINCT关键字、ROWNUM伪列或使用表达式定义的列,或则在视图上没有包含基表所有的NOT NULL列,那么不能在该视图上执行该操作。 定义视图的子查询不能包含ORDER BY子句,当从视图取回数据时可以指定ORDER BY子句。 建立视图 Oracle中通过CREATE VIEW语句创建视图,其语法格式如下: 简单视图 复杂视图 连接视图 只读视图 CHECK约束 简单视图 简单视图指基于一个基表建立的视图,在SQL中不包含任何函数、表达式和分组数据语句。 示例代码如下: 复杂视图 复杂视图指创建视图时包含函数、表达式和分组数据的SQL语句。当定义复杂视图时,必须要为函数或表达式定义列别名。 示例代码如下: 连接视图 连接视图是基于多个表的连接查询创建的视图。在创建连接视图时必须在WHERE条件中指定有效的连接,否则创建的视图没有意义。 示例代码如下: 只读视图 用户在创建视图时指定WITH READ ONLY选项时,可以创建只读视图。 示例代码如下: CHECK约束 用户在创建视图时使用WITH CHECK OPTION选项可以在视图上定义CHECK约束。 示例代码如下: 维护视图 用户在创建视图后,根据业务需求的变更,可能会对视图进行修改或删除操作。 修改视图:可以使用CREATE OR REPLACE VIEW语句修改视图定义。 重新编译视图:当用户改变了视图基表的定义(如增加列、删除列)后,视图会被标记为无效状态。当用户访问视图时,Oracle会自动重新编译视图。另外,也可以执行ALTER VIEW语句手动编译视图。 删除视图:当用户不再需要使用视图时,可以删除视图。 修改视图 语法格式如下: 示例代码如下: 重新编译视图 语法格式如下: 示例代码如下: 删除视图 语法格式如下: 示例代码如下: 小结 第八章 视图 理解视图的作用 掌握视图的分类及操作原则 理解在视图上执行DML操作的规则 掌握用创建视图、修改视图和删除视图的SQL语句语法 1 2 2 2 2 2 CREATE[OR REPLACE]VIEW view_name [(column_name)[,…n]] AS sub_query [WITH CHECK OPTION[CONSTRAINT constraint_name]] [WITH READ ONLY] view_name指定视图名; sub_query指定视图对应的子查询; WITH READ ONLY指示创建只读视图。 注意: 建立视图时,如果不提供视图列名,那么Oracle会自动使用子查询的列名,如果视图子查询包含函数或表达式,那么必须要为其定义列别名。 2 CREATE VIEW vw_emp2 (eno,name,salary,deptno)AS SELECT empno, ename, sal, deptno FROM emp; 在简单视图上,可以执行SELECT、INSERT、DELETE、UPDATE操作。 但在执行INSERT操作时需保证视图所包含基表额所有NOT NULL列,否则报错。 注意: 如果在当前方案中创建视图时,用户必须有CREATE VIEW权限。如果在其他方案中创建视图,用户必须有CREATE ANY VIEW权限。 2 CREATE VIEW vw_emp3(deptno,cntemp,avgsal)AS SELECT deptno,count(*),ROUND(avg(sa

文档评论(0)

junjun37473 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档