Oracle 10g如何实现高级查询
许多人愁不会Oracle 10g的高级查询,其实也是比较简单的。在查询数据时,为了获取完整的信息就要将多个表连接起来,这也是关系数据库的一个重要特性---表之间存在的关系。这种关系可以将表的数据联系起来。多表查询就是根据这种关系,实现从多个表中获取数据还原信息。下面这个图就是我将要操作的表结构。
工具/材料
Oracle 10g
操作方法
基本连接查询
在简单查询中我们一般只使用了from字句的一个表,然而在关系数据库中,表与表之间往往是存在关系的,这就是要求从多个表中检索数据,以输出更有意义的结果。最简单的连接方式就是在select语句中,通过from子句使用多个表,并用逗号将不同的基本表隔开。下面语句将商品信息表和供应商信息表连接起来,查询其中的商品名称,产地,供应商名称。
但此时结果显示该查询语句共显示了200行记录,这显然是错误的。因为仅仅通过select和from子句连接那么查询结果将是一个通过笛卡儿积生成的表,包含大量无意义的信息。而where语句可以有效避免笛卡儿积的出现。只有当两个表具有相同匹配的列时才返回结果集。例如下面语句通过在where子句中使用连接条件,实现了每件商品名称,产地,供应商名称信息。
但也要注意一个问题如果想要查询“供应商编号”应该怎么处理,因为两个表中都有“供应商编号”,所以应该查询的时候限定一下,说明究竟是哪一个表中的。
join连接查询
join用于连接两个不同的表,on用于给出这两个表之间的连接条件。如果进一步限制查询范围,可以在后面添加where语句,下面示例使用从商品信息表和供应商信息表查询单价大于1200元的商品信息。
并且join连接也可以实现两个以上的表查询,写语句的时候一个join对应一个on,看下面的例子。
自然连接查询
其实自然连接查询(natural join)就是更加方便的join连接查询,自然连接不必指定任何同等连接条件,系统将自动判断出具有相同名称的列然后形成匹配,但注意自然连接是根据两个表中同名的列而进行连接的,当列不同名时,自然连接将失去意义。
集合操作查询
集合操作就是将两个或多个SQL查询结合构成符合查询,集合操作符有union(并集)、intersect(交集)、minus(差集),现在以union为例,union查询必须从每个表中读取相同的列。
子查询
子查询和连接查询一样提供了使用单个查询访问多个表中的数据的方法,使用in关键字,意思是在in后面的集合中查询我们需要的,即in后面是限定条件。
特别提示
注意在Oracle 10g中的标点符号是英文状态下的
-
微信视频没有提示音怎么办
微信给我们提供了很多的方便,比如微信的语音通话视频通话甚至都可以代替电话了,但是有些时候会发现微信视频没有了提示音,这里教大家如何解决这个问题。微信设置导致的问题(01)打开手机进入微信。(02)在微信里面点击“我”进入“我”的主页。(03)点击“设置”。(04)点击“...
-
手机如何快速将两张图片拼接在一起
不用其他软件,就用微信就可以把两张图片拼接在一起,快来和我一起学学吧。操作方法(01)打开微信,点击右下角的“我”,打开收藏。(02)点一下右上角的圆圈加号图标。(03)选择左下角的图片,在相册中选择自己想要合并的两张图片。(04)选择好图片之后选择右上角三个点的地方。(05)在...
-
如何在微博给明星打榜
大家都喜欢在微博观看自己爱豆的动态,好心的粉丝还会给自己的偶像增加热度,打榜之类的,给爱豆打榜,最经常操作的地方就是在微博了,那我们怎么在微博给自己的爱豆打榜呢?操作方法(01)第一步,我们首先要在手机上打开微博,之后点击底部菜单栏的发现,在上面菜单栏的搜索框里输...
-
手机剪切板在哪里打开?
手机现在已经成为了人们生活中必不可少的日用品,无论是拍照录音还是购物点外卖,可真是超级便利。还能在手机上编辑文档,修改PPT等,那在文档编辑中我们常会用到“剪切粘贴”这个功能,那运用这个功能的时候你们都知道剪贴板在哪里么?我们又该怎么找到它呢?操作方法(01)我...