欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    精通Oracle核心技术和项目实战之视.pptx

    • 资源ID:73613198       资源大小:303.78KB        全文页数:41页
    • 资源格式: PPTX        下载积分:11.9金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要11.9金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    精通Oracle核心技术和项目实战之视.pptx

    第11章视图视图是Oracle提供的一种查询机制。该机制不仅可以简化各种查询,还可以保护数据库信息的安全。视图在数据库中可以理解为一张虚拟的表,使用视图可以补充表结构在某些需求方面的不足,可以让开发人员更方便地查询复杂数据。本章将主要介绍视图的概念、作用以及如何创建、查询、管理视图。11.1 Oracle视图初学者听到视图会比较陌生,实际上视图的创建和操作比较简单。在直观印象中它和表相似,但是它不具备表的某些功能。视图的使用和管理在许多方面和表相似,通俗来说我们一般把视图看作没有数据的表,本节就将介绍视图的概念和作用。11.1.1 视图的概念视图是由select查询语句定义的、基于一个或多个表(或视图)的一个逻辑表。视图本身不包含任何数据,也就是说视图只是一个查询语句的结果。它的数据最终是表中获取的,这些表我们可以称为基表,所以不需要在表空间中为视图分配存储空间。理解如图所示。11.1.2 视图的作用有读者可能会产生疑问,既然视图和表相似,为什么还要学习它,其实除了select语句之外,视图在insert、update和delete语句方面受限制,视图的作用如下:(1)使数据简化。(2)使数据更加独立。(3)增加安全性。11.1.3视图的分类在Oracle数据库中,视图可以被分成这样几种类型,关系视图、内嵌视图、对象视图和物理化视图。在本书中,将学习关系视图和内嵌视图。关系视图就是一个续表,它可以定义对数据的查询,允许其他查询重复使用该对象。关系视图属于简单视图,在数据库字典中可以查看它的信息。内嵌视图则是子查询的一种,它适合不重用的对数据的查询,其他查询无法使用该视图,这种视图不需要create命令完成,所以在数据库字典中无法查看该视图的信息。11.2 关系视图创建和使用可以直接使用SQL语句创建一个视图,也可以使用工具SQL Developer、OEM来创建视图。在创建视图时,只是将视图的定义信息保存到数据字典中,在视图中并不保存任何数据,通过视图而操作的数据仍然保存在表中,所以不需要在表空间中为视图分配存储空间。使用语句创建视图视图的创建比较简单,有一定的语法结构,其语法结构如图所示。使用语句创建视图在创建视图之前,为了确保视图的正确性,应先测试select子查询的语句,所以创建视图的正确步骤是:(1)编写select子查询语句。(2)测试select子查询语句。(3)检查查询结果的正确性。(4)使用该select子查询语句创建视图。创建视图时,可以创建单表视图,也可以创建多表视图以及视图的视图、无源表视图。下面将具体讲解。使用语句创建视图1.创建单表视图单表视图表示创建视图时,是根据一个表来创建。在创建视图之前先列出表的信息,方便和视图作对比。【示例11-1】创建视图,这个视图的作用是显示city是Lansing的顾客customer_id、cust_first_name、cust_last_name、city、phone_number。【示例11-2】现在我们来查询这个视图,查询视图的语法和查询表一样。使用语句创建视图2.创建多表视图在通常情况下,视图不会只根据一个表来创建,它会有两个或多个源表。下面我们来介绍基于两个表的视图,创建多表视图的语法如图所示。使用语句创建视图【示例11-3】创建一个基于两个表的视图,把orders表和customersnew表关联起来查询,查询其中order_id,、order_date、customer_id,、cust_first_name等信息。【示例11-4】现在我们来查询这个视图,查询视图的语法和查询表一样。使用语句创建视图3.创建视图的视图视图不仅可以建立在单表或多表上,也可以用其他的视图作为源表创建新的视图。现在我们简单演示一下在视图的基础上创建一个视图,语法如图所示。使用语句创建视图【示例11-5】创建一个前面示例11-1的一个子视图,其实就是去掉cust_last_name这列。【示例11-6】现在我们来查询这个视图,查询视图的语法和查询表一样。使用语句创建视图4.创建无源表视图在Oracle数据库中,我们可以在没有源表时,创建视图。但是这种情况下,视图虽然是创建了,但是还不能使用。等到它的源表创建完成之后,就可以正常使用了。这种创建视图的方式成为强制创建视图。可以使用force选项来强制创建视图。其语法结构如图所示。使用语句创建视图【示例11-7】强制创建视图vw_table,假设该视图的源表名称为tableview。【示例11-8】现在我们来查询这个视图,查询视图的语法和查询表一样。使用语句创建视图5.设置视图只读(read only)通常简单的视图是允许进行DML操作的,但是这样容易出现逻辑问题,因为视图增加或更新数据实际上是在操作视图的源表。所以在创建视图时为了避免用户修改数据,可以把视图设成为只读属性,其操作比较简单,语法如图所示。使用语句创建视图【示例11-9】创建视图,这个视图的作用是显示city是Lansing的顾客customer_id、cust_first_name、cust_last_name、city、phone_number,并且要覆盖前面原有的视图,设置此视图为只读属性效果。【示例11-10】对只读视图vw_cus进行查询、增加数据、插入等DML操作进行测试。使用语句创建视图6.设置视图约束(check option)check option 选项表示视图启动了和子查询条件一样的约束。也就是说,如果对视图修改或插入的数据和查询条件不一致,那么该操作会被终止。关于检查约束前面已经讲过,同样可以为视图设置检查约束,语法如图所示。使用语句创建视图【示例11-11】创建视图,这个视图的作用是显示city是Lansing的顾客customer_id、cust_first_name、cust_last_name、city、phone_number,并且为此视图设置检查约束。【示例11-12】通过Oracle中的数据字典user_constraints,查询使用with check option所创建的约束。使用SQL Developer创建视图对于记不住视图语法者,使用SQL Developer工具创建视图方便简洁,下面我们就为大家演示一下如何使用该工具来创建视图。【示例11-13】使用SQL Developer工具创建一个基于两个表的视图,把orders表和employees表关联起来查询,查询其中order_id、order_date、sales_rep_id、first_name。使用OEM创建视图除了上述两种方法外,在OEM中,可以通过界面交互的方式创建视图。【示例11-14】结合数据表customersnew,创建视图,这个视图的作用是显示city是Lansing的顾客customer_id、cust_first_name信息。查看及操作访问视图视图创建之后,可以查看视图,也可以使用操作访问视图。1.查看视图定义视图创建之后,其定义存在于数据库中。可以通过SQL Developer的Views窗口来查看视图VW_E在数据库中的信息。【示例11-15】查看示例11-11创建的视图vw_cus。【示例11-16】通过数据字典user_view查询当前用户拥有的所有视图信息。以查看vw_cus为例。查看及操作访问视图2.查看关系视图功能我们知道视图创建之后,可以查询视图中的数据。除此之外,我们也可以像表一样完成数据操纵的功能。即利用视图,可以插入数据和更新数据,也可以删除其中数据。对视图的操作仅限于更新、插入、删除。【示例11-17】Oracle内置视图user_updatable_columns定义了用户视图中各列的可更新情况。查看及操作访问视图3.操作访问视图对视图进行插入、更新操作。需要注意的是。只读视图仅可以进行查询操作,而无法进行更新及插入数据的操作。对于创建了约束的视图,使用视图时会检查涉及的数据是否能通过select子查询的where条件,否则SQL语句本能成功执行。查看及操作访问视图(1)更新视图数据更新视图数据,实际是更新基础表中的数据。我们可以利用update语句来更新视图中的数据,但是视图本身并不存储数据。更新视图中的数据时,需要满足对应基表的相关约束。【示例11-18】在视图vw_cus,该视图设置了with check option选项,要求city是Lansing,现欲将customer_id为982员工姓名调整为“Alva”,可以更新视图。【示例11-19】通过更新视图vw_cus,将customer_id为136员工姓名调整为“Alva”。【示例11-20】查询基础表customersnew中的数据进行验证。查看及操作访问视图(2)向视图插入数据利用insert语句,向视图中插入数据。使用视图进行插入时,插入的数据也同样需要满足基表和视图的相关约束。【示例11-21】在视图vw_cus中,插入新员工983的相关信息,但是没有为city赋值,所以会遇到错误。【示例11-22】在视图vw_cus中,重新尝试插入新顾客983的相关信息,此次为city赋值。【示例11-23】在向视图vw_cus中插入数据之后,重新查询视图中的数据。查看及操作访问视图(3)用视图进行删除。【示例11-24】利用视图vw_cus,删除编号为983的顾客相关信息。【示例11-25】视图vw_cus删除数据之后,重新查询视图中的数据。11.2.5使用SQL Developer工具访问视图使用SQL Developer对视图数据操作也很直观、简单,相对而言使用起来容易上手。在本小节为大家演示一下在SQL Developer下对视图数据的更新、插入、删除等。1.更新数据【示例11-26】使用SQL Developer工具在将视图w_cus中,把视图中顾客编号为316的city改为北京。【示例11-27】使用SQL Developer工具在将视图w_cus中,把视图中顾客编号为316的cust_first_name改为Sissy。【示例11-28】我们之前创建了视图w_orders_cus,该视图的源表是orders、customersnew,使用该视图更新数据,将顾客编号为316的cust_first_name改为Angel。11.2.5使用SQL Developer工具访问视图2.视图数据的插入有时候我们也可以为视图增加数据,为了操作简单,就以SQL Developer工具为例为大家简单演示一下视图添加数据的操作。和前面讲的修改数据一样,打开对应视图即可对其操作。【示例11-29】使用SQL Developer工具在为视图w_cus添加数据,顾客编号为983的,city必须赋值为Lansing。从图中,看出数据成功插入。11.2.5使用SQL Developer工具访问视图3.视图数据的删除视图中删除数据时,直接选中对应行,单击“X”按钮,即可完成删除视图数据,因为其操作很简单,这里我们就不介绍了。对于多表连接视图,删除操作也是不允许的。11.3 内嵌视图的创建和使用内嵌视图不需要视图名,只是一段SQL语句,通常在子查询中作为一个中间数据集,它可以在增加、删除、修改操作中使用。内嵌视图无须创建真正的数据库对象,而只是封装查询,因此会节约数据库资源。11.3 内嵌视图的创建和使用【示例11-30】在表orders中存储了顾客的订单信息,现欲获取order_total最多的前三个订单的信息。结合利用rownum3的条件可以返回前三行行记录。【示例11-31】在示例11-14中,使用了内嵌视图获得了订单最多的三个记录。同时,还想获得这些订单对应的顾客的联系方式,那么可以使用内嵌视图与表customersnew进行连接。此时,在内嵌视图与表customersnew中会存在重复列,因此,需要为内嵌视图指定别名。11.4视图的修改视图的修改比较特殊,不能像表一样修改,更准确的说他没有修改选项,我们采用覆盖原有视图的方法来修改视图,但这并不会影响视图的使用。因为视图本身不包含数据,所以覆盖原有视图时就不存在数据丢失的问题。本小节将主要介绍使用SQL Developer视图结构和视图数据的修改等操作。11.4.1 使用语句修改视图如果发现视图的定义不合适,可以对其进行修改。实际上视图中的select语句是不能直接修改的,所以修改视图的一种方法是先删除视图,再重新创建。另一种方法是在创建视图的create语句中使用or replace选项。带or replace选项的create语句语法结构如图所示。11.4.2使用SQL Developer工具修改视图下面我们用SQL Developer演示一下修改视图的结构。【示例11-32】使用SQL Developer工具修改视图vw_cus,将视图中customer_id字段取别名为id。11.4.3使用OEM修改视图除了使用语句和SQL Developer工具更改视图外,也可以使用OEM修改视图。【示例11-33】使用OEM修改视图vw_cus。11.5视图的删除视图的删除和表删除操作方式一样,可以使用SQL语句删除,也可以使用PL/SQL Developer工具删除。本节分别为大家介绍一下这两种方法。11.5.1 使用语句删除视图视图在不需要时,可以将其从数据库中删除。删除视图的命令是drop view。主要语法如图所示。【示例11-34】以我们前面创建的vw_id_name为例,用SQL语句删除视图。【示例11-35】查询刚刚删除的视图。11.5.2 使用SQL Developer 工具删除视图我们还可以在SQL Developer 工具中直接删除视图,操作比较简单。【示例11-36】删除前面创建的无源表视图vw_table为例,演示一下在SQL Developer 工具下删除视图。11.5.3 使用OEM删除视图除了使用语句和SQL Developer工具删除视图外,也可以使用OEM删除视图。使用OEM删除视图与修改视图类似。【示例11-37】删除我们前面创建的w_custwo为例,演示一下在OEM下删除视图。11.6小结在Oracle中经常使用视图,视图可以根据业务的需要从不同的角度展示数据,它给数据库管理者和用户都提供了一定的便捷性,也提高了数据的安全性。视图本身不包含任何数据,它只是一个查询,所有的数据都是从其它表中获取到的,但数据有着逻辑独立性。本章主要讲解了视图创建,还有视图的修改,视图数据的更改。本章的重点是理解什么是视图,如何创建视图,如何修改、删除视图。下一章将讲解Oracle中的流程控制语句。

    注意事项

    本文(精通Oracle核心技术和项目实战之视.pptx)为本站会员(wuy****n92)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开