在sql中,exist用来判断子查询的结果是否为空,也就是ture or false,where后面是跟条件,请问如何理解

在sql中,exist用来判断子查询的结果是否为空,也就是ture or false,where后面是跟条件,请问如何理解,第1张

exists是用来判断是否存在,如上例题就是同时满足学习过01、02科目的。

cno = '01' and 存在cno='02' 且 学号与学过01的学号相同(表示同时学过01、02的人)

in是把外表和内表作hash连接,而exists是对外表作loop循环。

确定给定的值是否与子查询或列表中的值相匹配。in在查询的时候,首先查询子查询的表,然后将内表和外表做一个笛卡尔积,然后按照条件进行筛选。所以相对内表比较小的时候,in的速度较快。

具体sql语句如下:

1 SELECT 2     3 FROM 4     `user` 5 WHERE 6     `user`id IN ( 7         SELECT 8             `order`user_id 9         FROM10             `order`

exist是指定一个子查询,检测行的存在。遍历循环外表,然后看外表中的记录有没有和内表的数据一样的。匹配上就将结果放入结果集中。

具体sql语句如下:

1 SELECT 2     `user` 3 FROM 4     `user` 5 WHERE 6     EXISTS ( 7         SELECT 8             `order`user_id 9         FROM10             `order`11         WHERE12             `user`id = `order`user_id

EXISTS的子查询根据子查询是否有记录返回确定条件是否成立。如果子查询有记录返回则EXISTS函数返回真,否则为假。由于EXISTS是据子查询是否有记录返回确定条件是否成立,因此在这里给出列名无意义。所以在有EXISTS的子查询中,其目标列表达式通常都用。

以上就是关于在sql中,exist用来判断子查询的结果是否为空,也就是ture or false,where后面是跟条件,请问如何理解全部的内容,包括:在sql中,exist用来判断子查询的结果是否为空,也就是ture or false,where后面是跟条件,请问如何理解、在SQL语句中,in和exist的区别是什么、sql数据库中存在量词EXISTS的子查询该怎么理解等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9824502.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-02
下一篇2023-05-02

发表评论

登录后才能评论

评论列表(0条)

    保存