Oracle 10g如何实现高级查询

许多人愁不会Oracle 10g的高级查询,其实也是比较简单的。在查询数据时,为了获取完整的信息就要将多个表连接起来,这也是关系数据库的一个重要特性---表之间存在的关系。这种关系可以将表的数据联系起来。多表查询就是根据这种关系,实现从多个表中获取数据还原信息。下面这个图就是我将要操作的表结构。

操作方式

  • 01

    根基毗连查询
    在简单查询中我们一般只利用了from字句的一个表,然而在关系数据库中,表与表之间往往是存在关系的,这就是要求从多个表中检索数据,以输出更有意义的成果。最简单的毗连体例就是在select语句中,经由过程from子句利用多个表,并用逗号将分歧的根基表离隔。下面语句将商品信息表和供给商信息表毗连起来,查询此中的商品名称,产地,供给商名称。

  • 02

    但此时成果显示该查询语句共显示了200行记实,这显然是错误的。因为仅仅经由过程select和from子句毗连那么查询成果将是一个经由过程笛卡儿积生当作的表,包含年夜量无意义的信息。而where语句可以有用避免笛卡儿积的呈现。只有当两个表具有不异匹配的列时才返回成果集。例如下面语句经由过程在where子句中利用毗连前提,实现了每件商品名称,产地,供给商名称信息。

  • 03

    但也要注重一个问题若是想要查询“供给商编号”应该怎么处置,因为两个表中都有“供给商编号”,所以应该查询的时辰限制一下,申明事实是哪一个表中的。

  • 04

    join毗连查询
    join用于毗连两个分歧的表,on用于给出这两个表之间的毗连前提。若是进一步限制查询规模,可以在后面添加where语句,下面示例利用从商品信息表和供给商信息表查询单价年夜于1200元的商品信息。

  • 05

    而且join毗连也可以实现两个以上的表查询,写语句的时辰一个join对应一个on,看下面的例子。

  • 06

    天然毗连查询
    其实天然毗连查询(natural join)就是加倍便利的join毗连查询,天然毗连不必指心猿意马任何划一毗连前提,系统将主动判定出具有不异名称的列然后形当作匹配,但注重天然毗连是按照两个表中同名的列而进行毗连的,当列分歧名时,天然毗连将掉去意义。

  • 07

    调集操作查询
    调集操作就是将两个或多个SQL查询连系组成合适查询,调集操作符有union(并集)、intersect(交集)、minus(差集),此刻以union为例,union查询必需从每个表中读取不异的列。

  • 08

    子查询
    子查询和毗连查询一样供给了利用单个查询拜候多个表中的数据的方式,利用in关头字,意思是在in后面的调集中查询我们需要的,即in后面是限制前提。

  • End

出格提醒

注重在Oracle 10g中的标点符号是英文状况下的

  • 发表于 2018-11-04 00:00
  • 阅读 ( 530 )
  • 分类:电子数码

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
联系我们:uytrv@hotmail.com 问答工具