Oracle中的子查询中的in,any,all,这三个关键字的作用是什么我不清楚,谁来讲解一下

作者&投稿:谢贩 (若有异议请与网页底部的电邮联系)
Oracle数据库!!!!关联子查询!!any和all的区别,根据这个例子给我讲下??谢谢!!!!~

any 就是匹配集合中的任意一个就满足条件了;而 all 要跟所有的都比较,所有都满足以后才为真。

子查询可以返回的行数和列数具有约束。如果您使用 IN、ANY 或 ALL,则子查询可以返回多个行,但只返回一个列。如果您使用其它运算符,则子查询必须返回单个值。
多行子查询

示例数据库中的两个表与财务结果有关。fin_code 表是一个较小的表,保存财务数据及其含义的不同代码:
若要列出 fin_data 表中的收入项,请键入以下语句:
SELECT *

FROM fin_data
WHERE fin_data.code IN
( SELECT fin_code.code
FROM fin_code
WHERE type = 'revenue' )

year quarter code amount
1999 Q1 r1 1023
1999 Q2 r1 2033
1999 Q3 r1 2998
1999 Q4 r1 3014
2000 Q1 r1 3114
本示例使用限定符清楚地标识每个引用中的 code 列所属的表。在这个特殊示例中,限定符可能已被省略。
另外两个关键字(ANY 和 ALL)可以用作运算符的限定符以允许它们处理多个行。
以下查询与上面的成功查询相同:
SELECT *

FROM fin_data
WHERE fin_data.code = ANY
( SELECT fin_code.code
FROM fin_code
WHERE type = 'revenue' )

=ANY 条件与 IN 条件相同,但 ANY 还可以和不等式(如 )一起使用,从而更灵活地使用子查询。
ALL 关键字与单词 ANY 相似。例如,以下查询列出非收入财务数据:
SELECT *

FROM fin_data
WHERE fin_data.code ALL
( SELECT fin_code.code
FROM fin_code
WHERE type = 'revenue' )

这与下面使用 NOT IN 的命令等同:
SELECT *

FROM fin_data
WHERE fin_data.code NOT IN
( SELECT fin_code.code
FROM fin_code
WHERE type = 'revenue' )使用子查询的常见错误

通常,子查询结果集限制为单个列。以下示例没有意义,这是因为 Adaptive Server Anywhere 不知道将 fin_code 中的哪个列与 fin_data.code 列比较。
-- this query is incorrect

SELECT *
FROM fin_data
WHERE fin_data.code IN
( SELECT fin_code.code, fin_code.type
FROM fin_code
WHERE type = 'revenue' )单行子查询

使用 IN 条件的子查询可以返回一组行,而使用比较运算符的子查询则只能返回一行。例如,由于子查询返回两行,所以以下命令导致一个错误:
-- this query is incorrect

SELECT *
FROM fin_data
WHERE fin_data.code =
( SELECT fin_code.code
FROM fin_code
WHERE type = 'revenue' )

楼主您好
in查询是包含
any大多数所用和in类似,in(1,2,3)相当于=any(1,2,3),和some这个关键字一样
区别是any可以用大于小于,比如 列1>any(1,2,3)就是查询列1 只要大于1,2,3其中任何一个数字就行,相当于列1>1
all同理 不过any是或查询 all是与查询 列1>all(1,2,3),相当于>3


RACLE是什么牌子
杂牌

马上就要工作三年了,我都学到什么技术?
RMAN的常用备份还原操作:用的是磁带和NBR,备份策略是保留一个月,一个星期一次全备,每天一个累积增份;为保险会对一些重要的数据表和表空间用RMAN做2次性的备份,大部分RACLE方面的问题在手册中都会找到答案,再不然就是到网上搜索一下,只要有毅力,我想一般的问题总会能解决的;乱七八糟的写了一...

ORACLE 中英文对照表
child segment value(子段值) 作为父段值一部分的明细层段值。另请参阅:父段值 chart of accounts(科目表) 用于记录事务处理和维护帐户余额的组织帐户结构。 chart of accounts structure(科目表结构) 对帐户段值所做的分类,为值的特定范围指定了普通特性。例如,1000 到 1999 可能是会计弹性域帐户段中资产的段...

金希澈的资料
SBS<人体探险队> 080113,080120,080127,080203 SBS<8对1> (080121 080128 080204 080211 080225(嘉宾:金在中、朴有天)...)固定MCMISALA JIN 的音乐date 希澈嘉宾 080314晟民的天方地轴 希澈嘉宾 080314 SBS真实游戏愚人节特辑 080401强仁亲密朋友 希澈嘉宾 080430利特恩赫 KissTheRadio 希澈嘉宾 080430SBS人气歌谣...

全国矿业权管理信息系统
为了实现系统总体架构中各子系统及其功能,系统采用基于组件的分层结构设计(如图10-11所示),主要包括应用层、业务层、数据访问层、网络层和数据库层等。 1.数据库层 数据库层是矿业权实地核查成果数据存储层,可以存储本地数据或网络数据,采用O racle企业级数据库进行存储,充分利用它的面向对象、空间数据、分区等特性...

mlracle是什么牌子的香水
1. LANCOME兰蔻推出了新款香水Miracle奇迹香水,迎接21世纪的新一天。2. 这款香水代表着LANCOME兰蔻对新世纪经典的期待和创造。

金贤重\/金希澈\/金基范\/郑允浩所参加的综艺节目,(例:XMAN,情书,夜心万 ...
2008 春子家有喜事了(MBC日日剧)综艺节目Loveletter060325~060401 Loveletter(始源 基范)060923~060930 Loveletter(始源 基范)X.Man060326~060402 (基范)060723~060730 (基范)060827~060903 (基范)060911~060924 (基范)Star Golden Bell 스타골든벨060826 Star Golden Bell(基范 利特 强仁 神童)Full ...

...我格式化后 一开机就绿屏 有字NO PESONRCE PLEASE LPGRACLE...
第一.打开机子并连接到电脑!第二.从魅族的官方网站下载中心(http:\/\/www.meizu.com\/download\/)下载适合你机子机型的升级软件!(注意选择一定好升级软件,机子是SL版的就选SL版专用升级软件;如果是TP版或者SP版,就选择TP,SP版专用软件!)第三.将下载的软件解压,并将M6SL.EBN和resource.bin复制到...

ERP系统原理与实施及其案例分析的图书目录
第一章 绪论1.1 企业信息化工程与ERP系统1.1.1 信息化的概念1.1.2 企业信息化工程的概念1.1.3 企业管理信息化的概念1.2 ERP系统的发展1.2.1 时段式物料需求计划(MRP)阶段1.2.2 闭环式物料需求计划(MRP)阶段1.2.3 制造资源计划(MRPⅡ)阶段1.2.4 企业资源计划(ERP)阶段1.2.5 ...

super junior金希澈
SBS<8对1> (080121 080128 080204 080211 080225(嘉宾:金在中、朴有天)...)固定MC MISALA JIN 的音乐date 希澈嘉宾 080314 晟民的天方地轴 希澈嘉宾 080314 SBS真实游戏愚人节特辑 080401 强仁亲密朋友 希澈嘉宾 080430 利特恩赫 KissTheRadio 希澈嘉宾 080430 SBS人气歌谣告别MC 080504 KBS2TV 寻笑人观众嘉宾...

华县13933317899: 在HQL语句的子查询中,in 和 on ,有什么区别? -
扈中羟苯: in是在给出的条件中操作;not in是不在给出的条件中操作;on是用于关联关键字用于表连接查询.例如:from Classes c join Student s on c.id=s.classesId

华县13933317899: Oracle语句中IN和=的区别有哪些? -
扈中羟苯: Oracle语句中IN和=的区别有: 1、首先应用范围不一样:in 可以理解为是范围内的选择;= 只有一个.例如: select sno, sname from t1 where sno in ('sn1001','sn1002'); select sno, sname from t1 where sno in ('sn1001'); select sno, sname from t...

华县13933317899: oracle 中in和not in 的区别 -
扈中羟苯: Oracle中关于in和exists,not in 和 not exists in和exists in 是把外表和内表作hash 连接,而exists是对外表作loop循环,每次loop循环再对内表进行查询. not exists:做NL,对子查询先查,有个虚表,有确定值,所以就算子查询有NULL最终也有值

华县13933317899: oracle中in和exist的区别 -
扈中羟苯: in和exist的主要区别体现在对sql执行计划的影响上.传统上认为,如果子查询的条件更具选择性(selective),就用in;而如果父查询(外层查询)的条件更具选择性(selective),就用exist.具...

华县13933317899: oracle数据库中in和exists的详细执行过程 -
扈中羟苯: Exists用于只能用于子查询,可以替代in,若匹配到结果,则退出内部查询,并将条件标志为true,传回全部结果资料,in不管匹配到匹配不到都全部匹配完毕,使用exists可以将子查询结果定为常量,不影响查询效果In和exists对比:若子查询结果集比较小,优先使用in,若外层查询比子查询小,优先使用exists.因为若用in,则oracle会优先查询子查询,然后匹配外层查询,若使用exists,则oracle会优先查询外层表,然后再与内层表匹配.最优化匹配原则,拿最小记录匹配大记录.

华县13933317899: oracle数据库中in和exists的详细执行过程 -
扈中羟苯: IN 其实与等于相似,比如in(1,2) 就是 = 1 or = 2的一种简单写法,所以一般在元素少的时候使用IN,如果多的话就用existsexists的用法跟in不一样,一般都需要和子表进行关联,...

华县13933317899: oracle中in和exist的区别 -
扈中羟苯: in 和 exists区别 in 是把外表和内表作hash join,而exists是对外表作loop,每次loop再对内表进行查询. 一直以来认为exists比in效率高的说法是不准确的. 如果查询的两个表大小相当,那么用in和exists差别不大. 如果两个表中一个较小,一...

华县13933317899: SQL查询中in和exists的区别分析
扈中羟苯: IN 确定给定的值是否与子查询或列表中的值相匹配. EXISTS 指定一个子查询,检测行的存在. 比较使用 EXISTS 和 IN 的查询 这个例子比较了两个语义类似的查询.第一个查询使用 EXISTS 而第二个查询使用 IN.注意两个查询返回相同的信息...

华县13933317899: oracle查询in中有重复数据是否对性能有较大影响 -
扈中羟苯: UNION ALL替换UNION性能更高.后者需要检查重复 数据量大的情况下group by性能更高,distinct需要读取所有列数据去重复,分组则不用.另外:数据量大,使用exists,而不是in.后者会对子查询中的表进行全表扫描,not in会执行一个内部的排序和合并,而前者只是检查存在性返回boolean.避免使用'*'符号,因为会去获取所有列信息然后依次转化为所有的列名.

华县13933317899: oracle 子查询什么意思? -
扈中羟苯: 子查询:子查询的话就是 其实就是嵌套查询的意思 一个查询语句嵌套在另一个查询语句 中 那么称该查询语句为子查询 例子如下:1、如:select * from tab1 where id in (select id form tab2 where ... ) 上面括号中的查询句子就属于“子查询”.链...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网