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后面是限定条件。

(0)

相关推荐

  • Oracle 10g 服务器端安装预备步骤教程

    取得 Oracle 10g 安装程序,或从 Oracle 技术网(OTN)下载光盘映像.在评估阶段您可以免费下载和使用无技术限制的全功能 Oracle,但在正式的商业场合应用时需要购买法律授权.下载地 ...

  • win7如何安装oracle 10g

    为大家准备的win7下oracle10g安装图解教程,非常详细: 方法/步骤 Oracle10g 安装预备步骤取得 Oracle 10g 安装程序,或从 Oracle 技术网(OTN)下载光盘映像.在 ...

  • Oracle 10g 64位安装图解流程

    Oracle 10g客户端是一款非常好用且功能强大的主要用于oracle数据库的开发和编辑等操作的软件,这个精简版本从官方的oracle客户端中提取,软件解压后就可以运行,操作方法也比较简单,可以直接 ...

  • 程序员:Navicat for Oracle实体化视图高级属性

    Navicat for Oracle实体化视图是一个可以用来总结.计算.复制和分发数据的模式对象,视觉化地创建视图.本教程将由Navicat官网详解Navicat for Oracle实体化视图高级属 ...

  • PLSQL操作Oracle数据库之单表查询SQL语句

    Orcale数据库作为商业级的大型关系型数据库管理系统,以其较高的安全性和强大的可移植性赢得了市场的广泛认可,而PLSQL作为操作Oracle的编程语言的最佳选择,掌握其编程原理及基本的sql操作是掌 ...

  • Win8系统安装Oracle 10g提示"程序异常终止"怎么办

    错误提示: 解决方法: 1. 修改安装程序Oracle 10Gdatabasestageprereqdbrefhost.xml ..... 只要在后面添加 2.到install目录中找到orapara ...

  • Oracle 10g中如何创建表

    从数据库用户角度看,数据库中的数据是以表.视图等方式储存的.那么用户自己是怎么创建表的呢?用户可以在Oracle提供的SQL*Plus中使用create table语句创建表. CREATE TABL ...

  • 怎么解决PLSQL连接oracle查询出现乱码

    很多时候使用windows开发更快的原因就是可视化,界面操作比较方便,那windows上使用PLSQL连接oracle时经常会碰到查询出现乱码的情况,那该如何解决呢? 操作方法 01 打开PLSQL ...

  • Linux安装Oracle

    操作方法 01 下载Oracle 10g先详细说明一下我的环境,系统:虚拟机Red Hat Enterprise Linux AS 5.4,数据库:Oracle Database 10g Releas ...