08_oracle_07(高级查询)资料.ppt

  1. 1、本文档共41页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
使用集合运算符时的规则 列的个数及列的数据类型在查询使用的所有SELECT 语句中必须相同。 列名不必相同。 输出中的列名取自第一个SELECT 语句中的列名。因此,若要在最终报表中显示某个列别名,应在第一个语句中输入该列别名。 可以用null和常量来填充缺失的列 视图 视图视图(类似于表)是一种数据库对象。但是,视图不是“真实”的表。视图是现有表或其它视图的逻辑表示。视图本身不包含数据。视图相当于一个窗口,通过这个窗口,可以查看或更改表中的数据。视图所基于的表称为“基表”。视图是以SELECT 语句形式存储在数据字典中的查询。 为什么使用视图? 限制对数据的访问 对于基于较复杂的SELECT 语句的查询,可以使用视图来降低执行这些查询的复杂度。 使数据的显示与数据本身无关。用户可以通过不同的方式查看相同的数据。 通过视图,可以根据用户组的特定权限或条件来控制用户组对数据的访问。 语法 create [or replace] [force| noforce] view 视图名[(别名[, 别名]...)] as 子查询 [with check option] [with read only] ; 不管基表是否存在都创建视图 指定只能更新或插入视图可以访问的行 确保不能对该视图执行DML 操作 创建视图的准则 定义视图的子查询可以包含复杂的SELECT 语法。 定义视图的子查询不能包含ORDER BY 子句。应在从视图中检索数据时指定ORDER BY 子句。 可以使用OR REPLACE 选项更改视图的定义,而不必删除视图或再次向其授予以前授予过的对象权限。 在子查询中可以使用别名替代列名。 DML 语句和视图 可以对简单视图执行DML 操作:INSERT、UPDATE 和DELETE。可以使用这些操作更改基表中的数据。如果您使用WHERE 子句创建了一个只允许用户查看受限信息的视图,则用户仍可以对视图中的所有列执行DML 操作。 同义词 同义词在SQL 中的含义与其它语言中的含义一样,是指可接受的替代另一个词的词或表达式。同义词可简化访问对象的操作,即为对象创建另一个名称。同义词可以简化访问其他用户所有的表的操作,并可缩短冗长的对象名。 同义词 create [public] synonym 同义词 for 对象; ?public:创建所有用户都可以访问的同义词 ?同义词:是要创建的同义词的名称 ?对象:标识要为其创建同义词的对象 实训任务(七续) 15.查询XXXX年XX月订单总金额在200块以上的用户的订单次数和订单总金额。 16.查询显示有折扣的商品信息,要求显示商品名称、商品类型名、商品单价、折扣、库存。 17.查询商品领带共采购了多少? 18.查询显示采购单信息,要求显示采购单号、采购日期、供应商名称、总金额、状态(1显示待审核,2显示已审核)。 19.查找年龄最小的用户信息。 20.查询显示在当月有采购来往的供应商信息。 21.查询显示用户信息,附加上每个用户的订单总金额。 22.年底报表中需要将采购单主表和订单主表信息显示在一个报表中,显示:单号、客户名称(采购为供应商名称,订单为用户名称)、日期(yy-mm-dd)、总金额(四舍五入取整)、单据状态、类型(采购单显示‘采购’,订单显示‘订购’)。? 23.将22中的查询定义为一个视图,并针对该视图查询一下信息。 24.系统中有几个商品信息数据维护人员 是根据商品类型分工的,其中一个维护人员Jane是维护童装精品的商品信息的,请为Jane创建一个视图。 Oracle 11G数据库应用开发 多表格查询 分组查询统计 子查询 视图 同义词的应用 第八讲 高级查询 多表格查询 定义  将两个或两个以上的表格,按照一定的关系连接起来进行查询。 多表格查询分类 连接查询 嵌套查询(子查询) 集合查询 链接查询 多表连接查询 查询订单信息,用户显示姓名 SQL 99 select omid,uname,odate,oamount,ostate from t_main_order a join t_user b on a.uiid=b.uiid; oracle select omid,uname,odate,oamount,ostate from t_main_order a , t_user b where a.uiid=b.uiid; 内连接查询 查询采购单信息,供应商显示姓名 SQL 99 select pmid,sname,pdate,pstate from t_main_procure a join t_supplier b on a.sid=b.sid; 说明 内连接查询中,对连接条件进行匹配,只列出符合条件的数据,如果要显示完全,则应该使

文档评论(0)

此项为空 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档