oracle高阶技巧


oracle高阶技巧

文章插图
很多人担心不知道Oracle 10g的高级查询,其实比较简单 。在查询数据时 , 需要连接多个表才能获得完整的信息 , 这也是关系数据库的一个重要特征——表与表之间的关系 。这种关系可以关联表中的数据 。根据这种关系 , 多表查询可以从多个表中获取数据约简信息 。下图是我将要操作的表结构 。
工具/材料
【oracle高阶技巧】计算机
Oracle 10g
操作方法
基本连接查询在简单查询中,我们一般只使用带有from这个词的表 。但是在关系数据库中,表与表之间往往存在关系 , 需要从多个表中检索数据才能输出更有意义的结果 。最简单的连接方式是在selec & # 116在语句中 , 通过from子句使用多个表,不同的基本表用逗号分隔 。以下语句连接商品信息表和供应商信息表,并查询商品名称、产地和供应商名称 。
02 但此时结果显示查询语句显示200行记录,这显然是错误的 。因为只有通过selec & # 116而from子句,查询结果会是一个笛卡尔积生成的表,里面包含了很多没有意义的信息 。而当& # 101;语句可以有效避免笛卡尔积的出现 。只有当两个表具有相同的匹配列时,才会返回结果集 。例如,以下语句用wher & # 101子句中使用连接条件来实现每个商品名称、产地和供应商名称的信息 。
03 但是,如果要查询“供应商编号”,也要注意一个问题如何处理 , 因为两个表中都有“供应商编号”,所以要限制查询,说明属于哪个表 。
04 Join连接查询join用于连接两个不同的表,on用于给出两个表之间的连接条件 。如果进一步限制查询范围 , 可以添加wher & # 101语句,下面的例子使用商品信息表和供应商信息表查询单价大于1200元的商品信息 。
05 并且join连接还可以实现两个以上的表查询 。编写语句时,一个联接对应一个on 。请参见下面的示例 。
06 自然连接查询实际上是一种更方便的连接查询 。自然连接不需要指定任何等价的连接条件 , 系统会自动确定同名的列,然后形成匹配 。但是注意,自然连接是基于两个表中同名的列 , 当列名不同时,自然连接就失去了意义 。
07 集合运算查询集合运算是将两个或多个SQL查询组合起来,形成一个匹配的查询 。集合运算符是unio & # 110(并集),交集(交集),减(差),现在用unio & # 110比如unio & # 110该查询必须从每个表中读取相同的列 。
08 子查询子查询和连接查询一样 , 提供了一种使用单个查询访问多个表中数据的方法,使用in关键字 , 意思是在in之后的集合中查询我们需要的东西,也就是in后面跟一个限定条件 。
特别提示
注意 , Oracle 10g中的标点符号是英文的 。

以上解释了甲骨文的进阶技巧 。本文到此结束 。希望能帮到大家 。