barriers / 阅读 / 详情

新手求助:最好简单明了点,sql中exist 和 not exist 的区分如何理解他们??

2023-05-19 23:48:39

最好简单明了点,sql中exist 和 not exist 的区分如何理解他们??

TAG: exist ot
共4条回复
余辉

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 与 in 最大的区别在于 in引导的子句只能返回一个字段,比如:

select name from student where sex = "m" and mark in (select 1,2,3 from grade where ...)

,in子句返回了三个字段,这是不正确的,exists子句是允许的,但in只允许有一个字段返回,在1,2,3中随便去了两个字段即可。

而not exists 和not in 分别是exists 和 in 的 对立面。

exists (sql 返回结果集为真)

not exists (sql 不返回结果集为真)

下面详细描述not exists的过程:

如下:

表A

ID NAME

1 A1

2 A2

3 A3

表B

ID AID NAME

1 1 B1

2 2 B2

3 2 B3

表A和表B是1对多的关系 A.ID => B.AID

SELECT ID,NAME FROM A WHERE EXISTS (SELECT * FROM B WHERE A.ID=B.AID)

执行结果为

1 A1

2 A2

原因可以按照如下分析

SELECT ID,NAME FROM A WHERE EXISTS (SELECT * FROM B WHERE B.AID=1)

--->SELECT * FROM B WHERE B.AID=1有值返回真所以有数据

SELECT ID,NAME FROM A WHERE EXISTS (SELECT * FROM B WHERE B.AID=2)

--->SELECT * FROM B WHERE B.AID=2有值返回真所以有数据

SELECT ID,NAME FROM A WHERE EXISTS (SELECT * FROM B WHERE B.AID=3)

--->SELECT * FROM B WHERE B.AID=3无值返回真所以没有数据

NOT EXISTS 就是反过来

SELECT ID,NAME FROM A WHERE NOT EXIST (SELECT * FROM B WHERE A.ID=B.AID)

执行结果为

3 A3

===========================================================================

EXISTS = IN,意思相同不过语法上有点点区别,好像使用IN效率要差点,应该是不会执行索引的原因

SELECT ID,NAME FROM A  WHERE ID IN (SELECT AID FROM B)

NOT EXISTS = NOT IN ,意思相同不过语法上有点点区别

SELECT ID,NAME FROM A WHERE ID NOT IN (SELECT AID FROM B)

有时候我们会遇到要选出某一列不重复,某一列作为选择条件,其他列正常输出的情况.

如下面的表table:

Id Name Class Count Date

1 苹果 水果 10 2011-7-1

1 桔子 水果 20 2011-7-2

1 香蕉 水果 15 2011-7-3

2 白菜 蔬菜 12 2011-7-1

2 青菜 蔬菜 19 2011-7-2

如果想要得到下面的结果:(Id唯一,Date选最近的一次)

1 香蕉 水果 15 2011-7-3

2 青菜 蔬菜 19 2011-7-2

正确的SQL语句是:

SELECT Id, Name, Class, Count, Date

FROM table t

WHERE (NOT EXISTS

(SELECT Id, Name, Class, Count, Date FROM table

WHERE Id = t.Id AND Date > t.Date))

如果用distinct,得不到这个结果, 因为distinct是作用与所有列的

SELECT DISTINCT Id, Name, Class, Count, Date FROM table

结果是表table的所有不同列都显示出来,如下所示:

1 苹果 水果 10 2011-7-1

1 桔子 水果 20 2011-7-2

1 香蕉 水果 15 2011-7-3

2 白菜 蔬菜 12 2011-7-1

2 青菜 蔬菜 19 2011-7-2

如果用Group by也得不到需要的结果,因为Group by 要和聚合函数共同使用,所以对于Name,Class和Count列要么使用Group by,要么使用聚合函数. 如果写成

SELECT Id, Name, Class, Count, MAX(Date)

FROM table

GROUP BY Id, Name, Class, Count

得到的结果是

1 苹果 水果 10 2011-7-1

1 桔子 水果 20 2011-7-2

1 香蕉 水果 15 2011-7-3

2 白菜 蔬菜 12 2011-7-1

2 青菜 蔬菜 19 2011-7-2

如果写成

SELECT Id, MAX(Name), MAX(Class), MAX(Count), MAX(Date)

FROM table

GROUP BY Id

得到的结果是:

1 香蕉 水果 20 2011-7-3

2 青菜 蔬菜 19 2011-7-2

如果用in有时候也得不到结果,(有的时候可以得到,如果Date都不相同(没有重复数据),或者是下面得到的Max(Date)只有一个值)

SELECT DISTINCT Id, Name, Class, Count, Date FROM table

WHERE (Date IN

(SELECT MAX(Date)

FROM table

GROUP BY Id))

得到的结果是:(因为MAX(Date)有两个值2011-7-2,2011-7-3)

1 桔子 水果 20 2011-7-2

1 香蕉 水果 15 2011-7-3

2 青菜 蔬菜 19 2011-7-2

注意in只允许有一个字段返回

有一种方法可以实现:

SELECT Id, Name, Class, COUNT, Date

FROM table1 t

WHERE (Date =

(SELECT MAX(Date)

FROM table1

WHERE Id = t .Id))

比如在Northwind数据库中有一个查询为

SELECT c.CustomerId,CompanyName FROM Customers c

WHERE EXISTS(

SELECT OrderID FROM Orders o WHERE o.CustomerID=c.CustomerID)

这里面的EXISTS是如何运作呢?子查询返回的是OrderId字段,可是外面的查询要找的是CustomerID和CompanyName字段,这两个字段肯定不在OrderID里面啊,这是如何匹配的呢?

EXISTS用于检查子查询是否至少会返回一行数据,该子查询实际上并不返回任何数据,而是返回值True或False

EXISTS 指定一个子查询,检测 行 的存在。

语法: EXISTS subquery

参数: subquery 是一个受限的 SELECT 语句 (不允许有 COMPUTE 子句和 INTO 关键字)。

结果类型: Boolean 如果子查询包含行,则返回 TRUE ,否则返回 FLASE 。

例表A:TableIn 例表B:TableEx

(一). 在子查询中使用 NULL 仍然返回结果集

select * from TableIn where exists(select null)

等同于: select * from TableIn

(二). 比较使用 EXISTS 和 IN 的查询。注意两个查询返回相同的结果。

select * from TableIn where exists(select BID from TableEx where BNAME=TableIn.ANAME)

select * from TableIn where ANAME in(select BNAME from TableEx)

(三). 比较使用 EXISTS 和 = ANY 的查询。注意两个查询返回相同的结果。

select * from TableIn where exists(select BID from TableEx where BNAME=TableIn.ANAME)

select * from TableIn where ANAME=ANY(select BNAME from TableEx)

NOT EXISTS 的作用与 EXISTS 正好相反。如果子查询没有返回行,则满足了 NOT EXISTS 中的 WHERE 子句。

结论:

EXISTS(包括 NOT EXISTS )子句的返回值是一个BOOL值。 EXISTS内部有一个子查询语句(SELECT ... FROM...), 我将其称为EXIST的内查询语句。其内查询语句返回一个结果集。 EXISTS子句根据其内查询语句的结果集空或者非空,返回一个布尔值。

一种通俗的可以理解为:将外查询表的每一行,代入内查询作为检验,如果内查询返回的结果取非空值,则EXISTS子句返回TRUE,这一行行可作为外查询的结果行,否则不能作为结果。

分析器会先看语句的第一个词,当它发现第一个词是SELECT关键字的时候,它会跳到FROM关键字,然后通过FROM关键字找到表名并把表装入内存。接着是找WHERE关键字,如果找不到则返回到SELECT找字段解析,如果找到WHERE,则分析其中的条件,完成后再回到SELECT分析字段。最后形成一张我们要的虚表。

WHERE关键字后面的是条件表达式。条件表达式计算完成后,会有一个返回值,即非0或0,非0即为真(true),0即为假(false)。同理WHERE后面的条件也有一个返回值,真或假,来确定接下来执不执行SELECT。

分析器先找到关键字SELECT,然后跳到FROM关键字将STUDENT表导入内存,并通过指针找到第一条记录,接着找到WHERE关键字计算它的条件表达式,如果为真那么把这条记录装到一个虚表当中,指针再指向下一条记录。如果为假那么指针直接指向下一条记录,而不进行其它操作。一直检索完整个表,并把检索出来的虚拟表返回给用户。EXISTS是条件表达式的一部分,它也有一个返回值(true或false)。

在插入记录前,需要检查这条记录是否已经存在,只有当记录不存在时才执行插入操作,可以通过使用 EXISTS 条件句防止插入重复记录。

INSERT INTO TableIn (ANAME,ASEX)

SELECT top 1 "张三", "男" FROM TableIn

WHERE not exists (select * from TableIn where TableIn.AID = 7)

EXISTS与IN的使用效率的问题,通常情况下采用exists要比in效率高,因为IN不走索引,但要看实际情况具体使用:

IN适合于外表大而内表小的情况;EXISTS适合于外表小而内表大的情况。

北境漫步

很简单,下面举个例子,例如:找出和张三一个班的所有学生,可以先查出张三所在班,然后再找所有和张三班相同的学生(使用 exists),如

select a.*

  from students a

 where exists(

          select 1  -- 只要有记录就说明和张三一个班

            from students b

           where stuname = "张三"   -- 姓名为张三

             and a.classname = b.classname)  -- 班级名和张三所在班级名相同

找出所有和张三不在一班的学生(使用not exists)

select a.*

  from students a

 where not exists(

          select 1  -- 只要有记录就说明和张三一个班

            from students b

           where stuname = "张三" -- 姓名为张三

             and a.classname = b.classname)  -- 班级名和张三所在班级名相同

再也不做稀饭了

exist 是存在的意思

not exist 就是不存在

例如: if exists(select * from tablea where a=1) 如果括弧中的语句存在结果集那麼就执行下面的begin end 中的语句

begin

end

gitcloud

exists : 强调的是是否返回结果集,不要求知道返回什么, 比如:

select

name

from student

where sex = "m"

and exists(select 1 from grade where grade_id = 1) ,只要

exists引导的子句有结果集返回,那么exists这个条件就算成立了,大家注意返回的字段始终为1,如果改成“select 2 from grade where ...”,那么返回的字段就是2,这个数字没有意义。所以exists子句不在乎返回什么,而是在乎是不是有结果集返回。

not exists 相反

exists (sql 返回结果集为真)

not exists (sql 不返回结果集为真)

相关推荐

exist什么意思

exist的意思:存在;实际上有;(尤指在困境或贫困中)生活,生存。读音:[ɪɡˈzɪst]词性:通常在句中作动词,修饰主语或宾语。固定搭配:exist on靠…生存;靠…生活。例句:The magic cure for inflation does not exist.解决通货膨胀的神奇方法并不存在。近义词介绍:occur表达意思:(尤指意外地)发生;存在,出现;(想法)产生。词性:通常在句中作动词,修饰主语或宾语。固定搭配:occur as以...的形式出现;occur for发生在…时候。例句:Rattlesnakes occur in the warmer, drier parts of North America.响尾蛇出现在北美温暖干燥的地区。
2023-01-12 21:48:571

exist与persist的区别

exist 英[ɪgˈzɪst] 美[ɪɡˈzɪst] vi. 存在; 生存; 生活; 继续存在; 全部释义>>[例句]He thought that if he couldn"t see something, it didn"t exist.他认为自己看不见的东西就不存在。persist 英[pəˈsɪst] 美[pərˈsɪst] v. 坚持; 存留; 固执; 继续存在; 全部释义>>[例句]Why does Britain persist in running down its defence forces?为什么英国要坚持消减其军事防御力量?如果是insist和persist的区别的话两者均表示“坚持”,区别如下:  1. 从含义上看,insist 主要指坚持某种意见或主张等,persist 则指坚持行动或行为,或固执地坚持某种意见。如:  He insisted on my staying there. 他坚持要我留在那儿。  He persists in reading in bed. 他老爱在床上看书。  2. 从搭配上看:用作不及物动词后接介词时,insist 后搭配介词on,persist 后搭配介词 in。如:  I always insist on wholesome bread. 我一贯主张要吃全麦面包。  He persists in his bad habit. 他坚持不改坏习惯。  另外,insist 可用作及物或不及物动词,用作及物动词时,其后通常接 that 从句(是否用虚拟语气,视情况而定,即看从句内容是否为事实),而 persist 通常只用作不及物动词(其后不接 that 从句)。如:  He insisted that she (should) do it. 他坚持要她做那事。  He insisted that she had done it. 他坚持说她做过那事。  The doctor insisted that he (should) take the medicine, but he insisted that he was not ill. 医生坚持要他服此药,但他坚持说他没有病。  注意不说:He persisted that she (should) do it. / He persisted that she had done it. 
2023-01-12 21:49:101

请教matlab的exist函数的用法

>> help existEXIST Check if variables or functions are defined.EXIST("A") returns:0 if A does not exist1 if A is a variable in the workspace2 if A is an M-file on MATLAB"s search path.It also returns 2 whenA is the full pathname to a file or when A is the name of anordinary file on MATLAB"s search path3 if A is a MEX-file on MATLAB"s search path4 if A is a MDL-file on MATLAB"s search path5 if A is a built-in MATLAB function6 if A is a P-file on MATLAB"s search path7 if A is a directory8 if A is a Java class>> exist("map")ans =77 if A is a directory
2023-01-12 21:49:142

exist的用法 前面可以用there吗

可以用there,但是你说there exist something就不是很好了,因为1.there be是连在一起比较好,2,something exist连在一起比较好,因为习惯是把something 和exist连在一起用,而且something要在exist的前面,something exist也算是一二固定搭配吧。柯林斯英汉双解大词典 exist /ɪɡˈzɪst/ CET4 TEM4 ( existing, existed, exists )1. 【something exist】某物存在,这是第一个用法了。V-I If something exists, it is present in the world as a real thing.He thought that if he couldn"t see something, it didn"t exist.他认为如果他看不见某种东西,它就不存在。Research opportunities exist in a wide range of areas.研究机会存在于广泛的领域中。2. exist on靠。。。为生=live onSome people exist on melons or coconuts for weeks at a time.有些人一度数周靠各种瓜与椰子生存。
2023-01-12 21:49:182

exists用法

exists用法: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子句不在乎返回什么,而是在乎是不是有结果集返回。扩展资料exist 相当于存在量词:表示集合存在,也就是集合不为空只作用一个集合。例如 exist P 表示P不空时为真;not exist P表示p为空时为真,in表示一个标量和一元关系的关系。例如:s in P表示当s与P中的某个值相等时为真; s not in P 表示s与P中的每一个值都不相等时为真。in 把外表和内表作hash join,而exists是对外表作loop,每次loop再对内表进行查询。绝对的认为exists比in效率高的说法是不准确的。这要看关联表的数据量大小。如果查询的两个表大小相当,那么用in和exists差别不大。如果两个表中一个较小,一个是大表,则子查询表大的用exists,子查询表小的用in。
2023-01-12 21:49:241

there exist和there seem的用法有什么区别?

回答和翻译如下:那儿存在,那儿似乎。There exist,there seem.(英语翻译)
2023-01-12 21:49:353

exist可数吗 属于什么词性

动词
2023-01-12 21:49:384

在SQL查询中,为什么说EXIST的效率要比IN要高?

因为 exist 只要找到一个满足条件的记录就颠了,返回true in 却要把结果集查出来,一个一个去比。 其实也不是绝对的,如果结果集比较小,尤其是静态的如:in("1","2","3") 也很快,甚至比exist快(我猜的)。
2023-01-12 21:49:412

present和exist在词义上有什么区别?

present是在场exist是存在,一般指物的客观存在
2023-01-12 21:49:442

exist手表什么牌子

雨果博斯品牌。1、Exist是雨果博斯品牌男士石英表时尚百搭商务休闲男士腕表2021经典款。2、雨果博斯手表是意大利品牌,闻名国际。以严谨、缜密的设计生产而闻名。产品任性却不出位,感性却不张扬。
2023-01-12 21:49:481

exist的词性是什么

exist [iɡ"zist] :vi. 存在;生存;生活;继续存在这是一个不及物动词,一般有以下几种介词搭配方式:exist in vt. 存在于 exist as 以…形式(或形态)存在,作为…而存在, exist on 靠…生存;靠…生活
2023-01-12 21:49:511

exist否定前缀

undoubted无疑的unemployment失业还有一些前缀的规则non-加在形容词名词前non-exist 常用英语单词前缀大全否定前缀篇im-加在字母mbp之前英语否定的前缀词汇小结英语否定的前缀主要有a- ab- anti- counter- de- dis- il- im- in- ir- mal- mis- non- un- 等。 a-ab-主要加在形容词动词前
2023-01-12 21:49:541

matlab中的exist是什么意思

>> help exist EXIST Check if variables or functions are defined. EXIST("A") returns: 0 if A does not exist 1 if A is a variable in the workspace 2 if A is an M-file on MATLAB"s search path. It also returns 2 when A is the full pathname to a file or when A is the name of an ordinary file on MATLAB"s search path 3 if A is a MEX-file on MATLAB"s search path 4 if A is a MDL-file on MATLAB"s search path 5 if A is a built-in MATLAB function 6 if A is a P-file on MATLAB"s search path 7 if A is a directory 8 if A is a Java class>> exist("map")ans = 77 if A is a directory
2023-01-12 21:49:573

exist怎么划分音节?

1. x在单词中发音/ks/, 但有时需要让整个单词发音流畅,会转读成/gz/。 整个单词的音标为/ igzist/.两个元音之间有两个辅音时,各分一个。所以其音节划分应在g和z之间:/ig.ˈzist/2. graduation 此词的词根是grad /græd/, u和a 属于构词需要。如果u和a按非重读音节读,只能读作为/ə/ . 这样就只能读成/grædəəʃən/,非常难听。所以把u和a作为次重读音节,分别读/ju/和/ei/.整个单词读音就好听了/ˌgrædʒuˈeɪʃn/. 单词的音节划分应是:grad.u.a.tion 3. /dju/ 为了读音流畅,改读/dʒu/. 改读很常见。如在s后的清辅音要改读浊辅音。如 school / sku:l/ >>> /sgu:l/ street /stri:t/ >>>/sdri:t/.
2023-01-12 21:50:042

SQL查询中in和exists有什么区别?

1.exist,notexist一般都是与子查询一起使用.In可以与子查询一起使用,也可以直接in(a,b.....)x0dx0ax0dx0a2.exist会针对子查询的表使用索引.notexist会对主子查询都会使用索引.in与子查询一起使用的时候,只能针对主查询使用索引.notin则不会使用任何索引.注意,一直以来认为exists比in效率高的说法是不准确的。x0dx0ain是把外表和内表作hash连接,而exists是对外表作loop循环,每次loop循环再对内表进行查询。x0dx0a如果查询的两个表大小相当,那么用in和exists差别不大。x0dx0a如果两个表中一个较小,一个是大表,则子查询表大的用exists,子查询表小的用in:x0dx0a例如:表A(小表),表B(大表)1:select*fromAwhereccin(selectccfromB)x0dx0a效率低,用到了A表上cc列的索引;select*fromAwhereexists(selectccfromBwherecc=A.cc)x0dx0a效率高,用到了B表上cc列的索引。x0dx0a相反的2:select*fromBwhereccin(selectccfromA)x0dx0a效率高,用到了B表上cc列的索引;select*fromBwhereexists(selectccfromAwherecc=B.cc)x0dx0a效率低,用到了A表上cc列的索引。x0dx0anotin和notexists如果查询语句使用了notin那么内外表都进行全表扫描,没有用到索引;而notextsts的子查询依然能用到表上的索引。所以无论那个表大,用notexists都比notin要快。x0dx0a3.exist与in都可以实现一个目的.二者都可以用来过滤数据.x0dx0a示例:x0dx0ax0dx0aselectcount(1)fromt1;--160Wx0dx0aselectcount(1)fromt2;--90Wx0dx0ax0dx0aSELECTcount(1)x0dx0aFROMt1ax0dx0aWHEREEXISTS(SELECTaccountidx0dx0aFROMt2bx0dx0aWHEREa.keyid=b.keyidANDa.ideaid=b.ideaid);--主大子小,不适合使用exist,因为exist只会利用子表t2的复合索引keyid+ideaid,而子表内容要小与主表,主表由于无法使用索引,查询效率低下.x0dx0ax0dx0aselectcount(1)fromt1awhereaccountidin(SELECTaccountidx0dx0aFROMt2bx0dx0aWHEREa.keyid=b.keyidANDa.ideaid=b.ideaid);--主大子小,适合用in,因为in只会使用主表t1里面的复合主键keyid-ideaid,在主表大于子表的情况下,会很好的利用主表的索引.x0dx0ax0dx0a--后二条sql的执行结果都是一样的.说明exist与in在用法上可以达到一个目的,不同的地方是x0dx0a--1.性能的考虑此时就按子表大主表小用exist,子表小主表大用in的原则就可以.x0dx0a--2.写法的不同,exist的where条件是:"......whereexist(.....wherea.id=b.id)"x0dx0a--in的where条件是:"......whereidin(selectid....wherea.id=b.id)"x0dx0ax0dx0a4.exist的原理:x0dx0aexists做为where条件时,是先对where前的主查询询进行查询,然后用主查询的结果一个一个的代入exists的查询进行判断,如果为真则输出当前这一条主查询的结果,否则不输出x0dx0a比如x0dx0a如下:x0dx0a表Ax0dx0aIDNAMEx0dx0a1A1x0dx0a2A2x0dx0a3A3x0dx0ax0dx0a表Bx0dx0aIDAIDNAMEx0dx0a11B1x0dx0a22B2x0dx0a32B3x0dx0ax0dx0a表A和表B是一对多的关系A.ID-->B.AIDx0dx0ax0dx0aSELECTID,NAMEFROMAWHEREEXISTS(SELECT*FROMBWHEREA.ID=B.AID)x0dx0a执行结果为x0dx0a1A1x0dx0a2A2x0dx0a原因可以按照如下分析x0dx0aSELECTID,NAMEFROMAWHEREEXISTS(SELECT*FROMBWHEREB.AID=1)x0dx0a-->SELECT*FROMBWHEREB.AID=1有值返回真所以有数据x0dx0ax0dx0aSELECTID,NAMEFROMAWHEREEXISTS(SELECT*FROMBWHEREB.AID=2)x0dx0a-->SELECT*FROMBWHEREB.AID=2有值返回真所以有数据x0dx0ax0dx0aSELECTID,NAMEFROMAWHEREEXISTS(SELECT*FROMBWHEREB.AID=3)x0dx0a-->SELECT*FROMBWHEREB.AID=3无值返回真所以没有数据x0dx0ax0dx0aNOTEXISTS就是反过来x0dx0aSELECTID,NAMEFROMAWHERENOTEXIST(SELECT*FROMBWHEREA.ID=B.AID)x0dx0a执行结果为x0dx0a3A3x0dx0a5.in与=的区别x0dx0aselectnamefromstudentwherenamein("zhang","wang","li","zhao");x0dx0a与x0dx0aselectnamefromstudentwherename="zhang"orname="li"orname="wang"orname="zhao"x0dx0a的结果是相同的。x0dx0ain的字段也可以与其它字段建复合索引.x0dx0a比如x0dx0aT1包含下面key,accountd,groupid.x0dx0ax0dx0aSELECT*x0dx0aFROMT1ax0dx0aWHEREa.groupid=2001x0dx0aANDa.accountid=1001x0dx0aANDa.keyIN("abc","def","ala");x0dx0ax0dx0a--上面的sql可以将accountid,key建成复合索引.
2023-01-12 21:50:171

java中,exist方法的使用。

假如 Dictionary 对象中存在所指定的主键则返回 true,否则返回 false。object.Exists(key)参数object必选项。总是一个 Dictionary 对象的名称。key必选项。需要在 Dictionary 对象中搜索的 key 值。下面这个例子说明了 Exists 方法的用法。function keyExists(k){varfso, s = ""; d = new ActiveXObject("Scripting.Dictionary"); d.Add("a", "Athens"); d.Add("b", "Belgrade"); d.Add("c", "Cairo"); if (d.Exists(k)) s += "Specified key exists."; else s += "Specified key doesn"t exist."; return(s);}
2023-01-12 21:50:256

exist()函数在matlab中怎么用?求教大神~

exist name 等价于 r=exist(name) ,在程序里面这样更加实用0 不存在则返回值 1 name 可以是变量名,如果存在,返回值 2 函数名、m 文件名,存在则返回值 3 mex 文件、dll 文件,存在则返回值 4 内嵌的函数,存在则返回值 5 p码文件 , 存在则返回值 6 目录,存在则返回值 7 路径,存在则返回值 8 Java class,存在则返回值 A = exist("name","kind")name 可以是变量名,函数名、m 文件名、mex 文件、dll 文件、内嵌的函数、p码文件、目录、路径、Java class kind可以是 : builtin 内嵌函数 class Java class dir 目录 file 文件或者目录 var 变量 应用举例type = exist("plot") %说明当前目录下存在plot这个内嵌函数 type = 5X=rand(1,1) X = 0.9593 matabcr=exist("X") r = 1 r=exist("X","var") r = 1 matabc还有一个非常有用的,曾经在论坛讨论过如何判定一个结构体为空s = struct s = 1x1 struct array with no fields. size(s) %用size不好判定 ans = 1 1 matabclength(s) %length也一样ans = 1 r=exist("s.field") %用exist可以判定r = 0
2023-01-12 21:50:311

为什么这里的exist不用三单?

不是复数,是第三人称单数 这个是动词,没有复数
2023-01-12 21:50:342

请教SQL语言中的EXIST的用法

EXISTS是判断是否存在,和in类似,但效率要比in高SELECT*FROMEMP(基础表)WHEREEMPNO>0ANDEXISTS(SELECT‘X"FROMDEPTWHEREDEPT.DEPTNO=EMP.DEPTNOANDLOC=‘MELB")SELECT*FROMEMP(基础表)WHEREEMPNO>0ANDDEPTNOIN(SELECTDEPTNOFROMDEPTWHERELOC=‘MELB")这两句效果一样摘抄自百度
2023-01-12 21:50:411

exist这个单词的音标是什么?

[ig"zist]
2023-01-12 21:50:483

SQL中 exists和in的区别是什么啊?

select * from tablewhere column in (xxxx)满足条件的数据 会查询出来select * from tablewhere exists(xxxxx)满足不满足的 条件的数据都会出来
2023-01-12 21:51:176

exist(0)或exist(1)是什么意思呢?

你好!!是exit(0),exit(1)吧,都是向系统申请退出程序,传递参数1就是说明遇到错误要退出,而传递参数0,说明程序正常退出,以便系统给予相应的响应 。
2023-01-12 21:51:232

exist到底是不及物动词还是及物动词啊 老师讲的是不及物动词 词典上写的又是vt. 求解答〜

不同意思有不同形式,意为 存在 时 用来表示物质的方位,常用搭配exist in,是不及物动词,表示生存时,是及物动词。
2023-01-12 21:51:271

exist是系动词吗拜托了各位 谢谢

可以用作是系动词的.属于表示保持某种状态等的系动词麻烦采纳,谢谢!
2023-01-12 21:51:301

请问,exist 怎么划分音节?

exist / ɪg"zɪst /vi. 存在;生存;生活;继续存在
2023-01-12 21:51:342

exist是什么意思

exist是什么意思EXIST,英文单词,动词,作动词时意为“存在;生存;生活;继续存在”。not exist 不存在。exist on 提供关于 ; 靠……生活 ; 指“赖以生存的事物” ; 靠…为生。exist t 存在 ; 生存 ; 在 ; 生活。EMAIL EXIST 电邮存在 ; 电子邮件存在。exist extensively 广泛存在。Contradictions exist 矛盾一直存在。exist earlier 已成为往事 ; 存在于过去。exist under 在…下存在。exist without 没…而不能生存 。Why do we exist?我们为什么要存在?So, I do not know that we can go all the acceptance of these exist.For without it, the world of relativity would not exist.因为没有它的话,相对性的世界不会存在。 
2023-01-12 21:51:401

exist名词是什么?

Existenceexist读音:英 [ɪɡ"zɪst];美 [ɪɡ"zɪst]    意思:v. 存在;生存;活着1、exist的基本意思是“存在,生存”。作“存在”解时主要指可以被感知的事物以某种状态存在,这种存在多为客观的,强调的是存在的真实性。作“生存”解时主要指人或其他生物依赖某物在地球上存活,此时只表示“存活”,而不表示“过生活”。2、exist常与介词by或on连用,表示“生存的手段或方法”。扩展资料:exist,live共同意思是“生存,存在”。其区别在于:1、exist指事物存在的客观现实,强调真实性。例如:God does not exist.上帝并不存在。2、live指有生命、活着,表示“活下去”时可与exist换用。例如:We cannot live〔exist〕 without food and water。没有食物和水我们就不能生存.
2023-01-12 21:51:591

exist是什么意思

1、Exists是Exist的复数形式,通常情况下,表达的是某个物体的存在,常用第三人称复数(Exists)。2、v.存在;实际上有;(尤指在困境或贫困中)生活,生存;3、Racismexistsatalllevelsofsociety.(种族主义存在于社会的各个阶层)4、Thisbuildinghasexistedforthousandsofyears.(这个建筑已经存在上千年了)5、Itseemsturelythatsheeverexisted.(她好像真的没存在过)。
2023-01-12 21:52:061

exist怎么读

直接就可以找出来音标的哈,x在这里发的ks的音
2023-01-12 21:52:092

exist怎么翻译 exist是什么意思

1、Exists是Exist的复数形式,通常情况下,表达的是某个物体的存在,常用第三人称复数(Exists)。2、v. 存在;实际上有;(尤指在困境或贫困中)生活,生存;3、Racism exists at all levels of society. (种族主义存在于社会的各个阶层)4、This building has existed for thousands of years. (这个建筑已经存在上千年了)5、It seems turely that she ever existed. (她好像真的没存在过)。
2023-01-12 21:52:121

英语exist什么意思

1、EXIST,英文单词,动词,作动词时意为“存在;生存;生活;继续存在”。2、双语例句:So,Idonotknowthatwecangoalltheacceptanceoftheseexist.所以,我都不知道我们可以去全部接受这些的存在。
2023-01-12 21:52:151

exist是什么意思?

exist [ex·ist || ɪg"zɪst]v. 存在, 生存, 发生
2023-01-12 21:52:182

exist是什么意思?

existKK: []DJ: []vi.1. 存在[W]That word doesn"t exist in English.英语中没有这个字。2. 生存;生活[(+on)]She existed only on milk.她只靠牛奶生存。
2023-01-12 21:52:243

exist的名词

exist的名词形式是existence比如:Man came into existence millions of years ago.
2023-01-12 21:52:271

exists是什么意思

是否存在
2023-01-12 21:52:304

present和exist的区别

presentadj. 出席的, 到场的2. 现在的, 目前的3. 存在的, 含有的4. 正在处理或讨论中的5. 【语法学】现在发生(或存在)的;现在时(态)的n. 1. 现在; 目前;目前的情况(或场合);正在处理(或考虑)的事2. 礼物, 赠品3. [复数]本作品;(尤指)【法律】本文件,本证件4. 【语法学】现在时态;现在时态动词5. (举枪)瞄准姿势;(举枪)致敬(姿势)vt. 其他读音:[pri?zent] 1. 出现; 出席; 显示2. 介绍3. 赠与; 交给4. 颁发;授予5. 提出;提交6. 展现;显示;表现7. 交付;提交8. (在剧院中)主持上演(节目);(在广播或电视中)主持播出(节目)9. 上演,演出,表演;使演员在演出中担任角色10. (口头或书面)表达;表示11. 使发生;使经历12. 【法律】告发,控告;裁决13. (牧师)任圣职;举荐14. 以(武器)瞄准;举(枪等)敬礼15. 在神前供奉vi. 1. 举向,面向;举枪瞄准2. (分娩时婴儿)露出,先露exist 是“存在,生存”的意思existvi. 1. 存在, 有2. 生存, 活下来, 幸存3. (尤指在特殊的条件下或在特定的场所)发现,发生,出现;现存;具有;找得到4. 持续存在,继续存在,继续生存5. (人)苦度日子,(尤指在逆境中)生活;得到基本的生活必需品(如食物和住所)6. 【哲学】(存在主义哲学)存在
2023-01-12 21:52:331

exist什么时候加s

exist在单数的时候加s。exist的基本意思是“存在,生存”。作“存在”解时主要指可以被感知的事物以某种状态存在,这种存在多为客观的,强调的是存在的真实性。作“生存”解时主要指人或其他生物依赖某物在地球上存活,此时只表示“存活”,而不表示“过生活”。exist多用作不及物动词。exist常与介词by或on连用,表示“生存的手段或方法”。
2023-01-12 21:52:361

exists用法

exists用法: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子句不在乎返回什么,而是在乎是不是有结果集返回。扩展资料exist 相当于存在量词:表示集合存在,也就是集合不为空只作用一个集合。例如 exist P 表示P不空时为真;not exist P表示p为空时为真,in表示一个标量和一元关系的关系。例如:s in P表示当s与P中的某个值相等时为真; s not in P 表示s与P中的每一个值都不相等时为真。in 把外表和内表作hash join,而exists是对外表作loop,每次loop再对内表进行查询。绝对的认为exists比in效率高的说法是不准确的。这要看关联表的数据量大小。如果查询的两个表大小相当,那么用in和exists差别不大。如果两个表中一个较小,一个是大表,则子查询表大的用exists,子查询表小的用in。
2023-01-12 21:52:421

exist有被动语态吗

没有。exist英 [ɪɡ"zɪst]     美 [ɪɡ"zɪst]    v. 存在;生存;活着。Most scientists believe that water doesn"t exist on the surface of the moon.多数科学家认为,月球表面不存在水。用法:1、exist的基本意思是“存在,生存”。作“存在”解时主要指可以被感知的事物以某种状态存在,这种存在多为客观的,强调的是存在的真实性。作“生存”解时主要指人或其他生物依赖某物在地球上存活,此时只表示“存活”,而不表示“过生活”。2、exist多用作不及物动词。3、exist常与介词by或on连用,表示“生存的手段或方法”。4、exist相当于表示存在的动词be,应置于引导词之后,主语之前,即主谓倒装。
2023-01-12 21:52:521

‘存在"的英文单词是什么?

存在: exist
2023-01-12 21:52:583

exist是延续性动词吗

exist是延续性动词。exist 英 [ɪɡ"zɪst]  美 [ɪɡ"zɪst]    v. 存在;生存;活着Most scientists believe that water doesn"t exist on the surface of the moon.多数科学家认为,月球表面不存在水。短语1、chemical compounds exist 存在化合物2、circumstances exist 情况存在3、democracy exist 存在民主4、famine exist 存在饥饿
2023-01-12 21:53:061

英语coexist和exist区别是什么?

英语:1) coexist:共存;并存。例如:Different traditions coexist successfully side by side. 不同的传统和谐地共存着。2) exist:存在。例如:Does life exist on other planets? 其他行星上有生命存在吗?
2023-01-12 21:53:183

exist怎么翻译exist是什么意思

1、Exists是Exist的复数形式,通常情况下,表达的是某个物体的存在,常用第三人称复数(Exists)。2、v.存在;实际上有;(尤指在困境或贫困中)生活,生存;3、Racismexistsatalllevelsofsociety.(种族主义存在于社会的各个阶层)4、Thisbuildinghasexistedforthousandsofyears.(这个建筑已经存在上千年了)5、Itseemsturelythatsheeverexisted.(她好像真的没存在过)。
2023-01-12 21:53:211

sql exist和in的区别及查询效率比较

SQL查询中in和exists的区别分析select * from A where id in (select id from B);select * from A where exists (select 1 from B where A.id=B.id);对于以上两种情况,in是在内存里遍历比较,而exists需要查询数据库,所以当B表数据量较大时,exists效率优于in。1、IN()语句内部工作原理IN()只执行一次,它查出B表中的所有id字段并缓存起来。之后,检查A表的id是否与B表中的id相等,如果相等则将A表的记录加入结果集中,直到遍历完A表的所有记录。它的查询过程类似于以下过程:List resultSet={};Array A=(select * from A);Array B=(select id from B);for(int i=0;i<A.length;i++) { for(int j=0;j<B.length;j++) {      if(A[i].id==B[j].id) {resultSet.add(A[i]);        break;}}}return resultSet;可以看出,当B表数据较大时不适合使用in(),因为它会B表数据全部遍历一次例1:A表有10000条记录,B表有1000000条记录,那么最多有可能遍历10000*1000000次,效率很差。例2:A表有10000条记录,B表有100条记录,那么最多有可能遍历10000*100次,遍历次数大大减少,效率大大提升。结论:IN()适合B表比A表数据小的情况2、EXISTS()语句内部工作原理exists()会执行A.length次,它并不缓存exists()结果集,因为exists()结果集的内容并不重要,重要的是其内查询语句的结果集空或者非空,空则返回false,非空则返回true。它的查询过程类似于以下过程:List resultSet={};Array A=(select * from A);for(int i=0;i<A.length;i++){   if(exists(A[i].id) {  //执行select 1 from B where B.id=A.id是否有记录返回      resultSet.add(A[i]);  }}return resultSet;当B表比A表数据大时适合使用exists(),因为它没有那么多遍历操作,只需要再执行一次查询就行。例1:A表有10000条记录,B表有1000000条记录,那么exists()会执行10000次去判断A表中的id是否与B表中的id相等。例2:A表有10000条记录,B表有100000000条记录,那么exists()还是执行10000次,因为它只执行A.length次,可见B表数据越多,越适合exists()发挥效果。例3:A表有10000条记录,B表有100条记录,那么exists()还是执行10000次,还不如使用in()遍历10000*100次,因为in()是在内存里遍历比较,而exists()需要查询数据库,我们都知道查询数据库所消耗的性能更高,而内存比较很快。结论:EXISTS()适合B表比A表数据大的情况3、使用情况分析当A表数据与B表数据一样大时,in与exists效率差不多,可任选一个使用。在插入记录前,需要检查这条记录是否已经存在,只有当记录不存在时才执行插入操作,可以通过使用 EXISTS 条件句防止插入重复记录。insert into A (name,age) select name,age from Bwhere not exists (select 1 from A where A.id=B.id);EXISTS与IN的使用效率的问题,通常情况下采用exists要比in效率高,因为IN不走索引。但要看实际情况具体使用:IN适合于外表大而内表小的情况;EXISTS适合于外表小而内表大的情况。4、关于EXISTS:EXISTS用于检查子查询是否至少会返回一行数据,该子查询实际上并不返回任何数据,而是返回值True或False。EXISTS 指定一个子查询,检测行的存在。语法: EXISTS subquery参数: subquery 是一个受限的 SELECT 语句 (不允许有 COMPUTE 子句和 INTO 关键字)。结果类型: Boolean 如果子查询包含行,则返回 TRUE ,否则返回 FLASE 。结论:select * from A where exists (select 1 from B where A.id=B.id)EXISTS(包括 NOT EXISTS )子句的返回值是一个boolean值。 EXISTS内部有一个子查询语句(SELECT ... FROM...),我将其称为EXIST的内查询语句。其内查询语句返回一个结果集, EXISTS子句根据其内查询语句的结果集空或者非空,返回一个布尔值。一种通俗的可以理解为:将外查询表的每一行,代入内查询作为检验,如果内查询返回的结果取非空值,则EXISTS子句返回TRUE,这一行行可作为外查询的结果行,否则不能作为结果。分析器会先看语句的第一个词,当它发现第一个词是SELECT关键字的时候,它会跳到FROM关键字,然后通过FROM关键字找到表名并把表装入内存。接着是找WHERE关键字,如果找不到则返回到SELECT找字段解析,如果找到WHERE,则分析其中的条件,完成后再回到SELECT分析字段。最后形成一张我们要的虚表。WHERE关键字后面的是条件表达式。条件表达式计算完成后,会有一个返回值,即非0或0,非0即为真(true),0即为假(false)。同理WHERE后面的条件也有一个返回值,真或假,来确定接下来执不执行SELECT。分析器先找到关键字SELECT,然后跳到FROM关键字将STUDENT表导入内存,并通过指针找到第一条记录,接着找到WHERE关键字计算它的条件表达式,如果为真那么把这条记录装到一个虚表当中,指针再指向下一条记录。如果为假那么指针直接指向下一条记录,而不进行其它操作。一直检索完整个表,并把检索出来的虚拟表返回给用户。EXISTS是条件表达式的一部分,它也有一个返回值(true或false)。作者:IronM链接:https://www.jianshu.com/p/f212527d76ff来源:简书著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
2023-01-12 21:53:241

remain和exist

remain是一个英语单词,可用作动词、名词。通常用作动词,作动词时意思是“保持(不变);依然是;留下;剩余;逗留;残存;仍需去做(或说、处理)”;作名词时意思是“遗迹;剩余物,残骸”,但要注意的是,用作名词时应当使用remains。exist,英文单词,动词,作动词时意为“存在;生存;生活;继续存在”。
2023-01-12 21:53:271

matlab exist用法

  exist在matlab中是用于检验某个参数变量是否存在或是否符合设定要求的函数,其不同的返回值代表的不同含义。  exist name  等价于 r=exist(name) ,在程序里面这样更加实用  0 不存在则返回值  1 name 可以是变量名,如果存在,返回值  2 函数名、m 文件名,存在则返回值  3 mex 文件、dll 文件,存在则返回值  4 内嵌的函数,存在则返回值  5 p码文件 , 存在则返回值  6 目录,存在则返回值  7 路径,存在则返回值  8 Java class,存在则返回值  A = exist("name","kind")  name 可以是变量名,函数名、m 文件名、mex 文件、dll 文件、内嵌的函数、p码文件、目录、路径、Java class  kind可以是 :  builtin 内嵌函数  class Java class  dir 目录  file 文件或者目录  var 变量  应用举例  type = exist("plot") %说明当前目录下存在plot这个内嵌函数  type =  5    X=rand(1,1)  X =  0.9593  matabc  r=exist("X")  r =  1  r=exist("X","var")  r =  1  matabc  还有一个非常有用的,曾经在论坛讨论过  如何判定一个结构体为空  s = struct  s =  1x1 struct array with no fields.  size(s) %用size不好判定  ans =  1 1  matabc  length(s) %length也一样  ans =  1  r=exist("s.field") %用exist可以判定  r =  0
2023-01-12 21:53:291

sql 中exists 在where中怎样用?

按name分组取val最大的值所在行的数据。select a.* from tb a where not exists(select 1 from tb where name = a.name and val > a.val)
2023-01-12 21:53:366

thereexist和thereexists的区别

thereexist和thereexists的区别如下。1、exist的基本意思是存在,生存。作存在解时主要指可以被感知的事物以某种状态存在,这种存在多为客观的,强调的是存在的真实性。seem表示看起来像、似乎,其后可接形容词、名词、不定式等,常指有一定根据的内心判断,这种判断往往与实际情况比较接近。therebe...句型是存在句的常用基本结构,there在句中处于主语位置,起形式主语的作用,真正的主语是随后的名词词组。其谓语动词通常是be的各种时、体等形式。
2023-01-12 21:54:071

there exists句型用法是什么?

there exist。可以认为是there be的变形,be后名词是句子主语,be的单复数与句子主语一致。用法如下:1、exist的基本意思是“存在,生存”。作“存在”解时主要指可以被感知的事物以某种状态存在,这种存在多为客观的,强调的是存在的真实性。2、作“生存”解时主要指人或其他生物依赖某物在地球上存活,此时只表示“存活”,而不表示“过生活”。exist的近义词:livelive读音:英 [lɪv , laɪv]   美 [lɪv , laɪv] 释义:住,居住,生存,活着。语法:live的基本意思是“居住,住”,引申可作“活,生存”“以某种方式生活”“继续存在,留存”“享受生活”等解。
2023-01-12 21:54:111

arise与exist的区别

arise表示出现 发生。侧重一个动作的发生而exist表示一种存在的状态
2023-01-12 21:54:202