EXISTS在SQL中的作用是:检验查询是否返回数据。
select a.* from tb a where exists(select 1 from tb where name =a.name)返回真假,当 where 后面的条件成立,则列出数据,否则为空。
exists强调的是是否返回结果集,不要求知道返回什么。比如:select name from student where sex = 'm' and mark exists(select 1 from grade where ...)
只要exists引导的子句有结果集返回,那么exists这个条件就算成立了,大家注意返回的字段始终为1
如果改成“select 2 from grade where ...”,那么返回的字段就是2,这个数字没有意义。所以exists子句不在乎返回什么,而是在乎是不是有结果集返回。
扩展资料:Exists 方法描述如果在 Dictionary对象中指定的关键字存在,返回True,若不存在,返回False。
语法object.Exists(key)Exists 方法语法有如下几部分:部分描述Object必需的。始终是一个 Dictionary对象的名字。Key必需的,在 Dictionary对象中搜索的Key值。
exist相当于存在量词:表示集合存在,也就是集合不为空只作用一个集合.
例如 exist P表示P不空时为真not exist P表示p为空时为真in表示一个标量和一元关系的关系。
例如:s in P表示当s与P中的某个值相等时为真s not in P 表示s与P中的每一个值都不相等时为真。
exits与not exits
exists(sql 返回结果集为真)
not exists(sql 不返回结果集为真)
如果not exists子查询只有自己本身的查询条件,这样只要子查询中有数据返回,就证明是false,结果在整体执行就无返回值;一旦跟外面的查询关联上,就能准确查出数据。
参考资料:百度百科-Exists
exist的意思是:存在。
读音:英[ɪɡˈzɪst],美[ɪɡˈzɪst]。
释义:vi.存在;生存;生活;继续存在。
例句:Does life exist on Mars?
火星上是否存在生命?
变形:过去式existed,过去分词existed,现在分词existing,第三人称单数exists。
短语:
exist really确实存在。
exist as以…形态而存在。
exist between在…之间存在。
exist by靠…为生。
exist的用法
exist的基本意思是“存在,生存”。作“存在”解时主要指可以被感知的事物以某种状态存在,这种存在多为客观的,强调的是存在的真实性。作“生存”解时主要指人或其他生物依赖某物在地球上存活,此时只表示“存活”,而不表示“过生活”。
exist常与介词by或on连用,表示“生存的手段或方法”。
exist相当于表示存在的动词be,应置于引导词之后,主语之前,即主谓倒装。
exists可以说是oracle数据库开发中比较常见的用法,用exists可以提高sql的效率,可以取代in。
比如 a,b 关联列为 a.id = b.id,现在要取 a 中的数据,其中id在b中也存在:
select * from a where exists(select 1 from b where a.id = b.id)
现在要取 a 中的数据,其中id在b中 不存在:
select * from a where not exists(select 1 from b where a.id = b.id)
用法详解
exists是判断exits后面的sql语句是否为真,若为真则整个sql句子成立,否则没有任何记录。例子:
select 1 from dual where exists (select 1 from dual where 2=1)
上面的情况肯定是没有记录。
select 1 from dual where exists (select 1 from dual where 1=1)
上面的情况是有记录返回的。
判断另外的表中是否包含某个表的外键记录。例子:
select * from table_test a
where exists (select 1 from scott.carol_tmp where pps_master=a.pps_master)
这个sql是要检查table_test中的pps_master是否在carol_tmp中。其实用in也可以实现同样的效果,但是in的话效率要低些,特别是碰上一些大表。用exists和in的性能就体现出来了。