Oracle 10g如何实现高级查询

2021-09-18T23:47:00最佳经验
许多人愁不会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后面是限定条件。
特别提示
注意在Oracle 10g中的标点符号是英文状态下的
相关经验推荐
- Q怎么查看qq身份证
- Q如何注销360借条账户
- Q总是开关机对手机有哪些危害
- Q高德地图语音不播报路线怎么办 不说话了怎么办
- Q关于小米三屏幕自己乱跳乱点情况的解决方法
- Q快手直播身份证怎么解除
- Q如何关闭华为语音助手
- Q如何用微信扫一扫翻译整段英文
- Q如何把自己录制的歌曲上传到酷狗音乐且入库曲
- Q微信提示操作频率过快怎么办
- QQQ画图红包蒙娜丽莎怎么画?
- Q抖音人脸渐变视频怎么弄的 照片变回童年的软件
- Q华为和小米,到底哪个品牌的质量好?
- Q苹果xs max的使用技巧有哪些?双卡如何切换?
- Q如何判定自己是不是手机上瘾?
- Q你每天捧着手机到底玩些什么?
- Q安卓手机如何关闭自动旋转屏幕功能怎么打开
- Q怎么使用悦动圈(跑步软件)拿红包呢?
- Q无法卸载:该数据包是活动的设备管理器如何处理
- Q免费购手机宣传可信吗
- Q百度手机输入法皮肤布局及主题的设置方法
- Q如何使用微信连接WiFi热点?
已有 7097758 位网友注册
已帮助 104191 人解决了问题