数据库语言 not exists 是什么意思

数据库语言 not exists 是什么意思,第1张

就是不在这个范围的意思

select id

from table

where name not exists(select 1

from table

where name = 'aaa')

也许你看不懂这个1的意思,不过在使用EXISTS的时候,通常都会使用1,它代表所查询出来的集合,等同于select name。

整个例子的意思是:查询name不等于aaa的所有ID。

不明白再问我,谢谢!

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

以上就是关于数据库语言 not exists 是什么意思全部的内容,包括:数据库语言 not exists 是什么意思、在SQL语句中,in和exist的区别是什么、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: http://outofmemory.cn/sjk/9503207.html

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

发表评论

登录后才能评论

评论列表(0条)

保存