SQL中exists和not exists的用法

这篇具有很好参考价值的文章主要介绍了SQL中exists和not exists的用法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

exists 和 not exists用法

exists和not exists 用于检查子查询是否至少会返回一行数据,该子查询实际上并不返回任何数据,而是返回值TRUE或FALSE。
只不过exists和not exists 正好相反
exists(sql 返回结果集,为真)
exists括号中sql语句有结果,才会继续执行where 条件,没结果视为条件不成立
not exists(sql 不返回结果集,为真)
not exists括号中sql语句无结果,才会继续执行where 条件,有结果视为条件不成立

例如:
表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 * FROM A WHERE EXISTS(

SELECT 1 FROM B WHERE A.ID=B.AID
)
sql not exist,数据库函数,sql,数据库
上述结果分析:原因可以按照如下分析
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无值返回真所以没有数据

2.NOT EXISTS 就是反过来
SQL> select id,name from a where not exists (select * from b where a.id=b.aid);文章来源地址https://www.toymoban.com/news/detail-565628.html

    ID NAME
    3    A3

到了这里,关于SQL中exists和not exists的用法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【SQL开发实战技巧】系列(六):从执行计划看NOT IN、NOT EXISTS 和 LEFT JOIN效率,记住内外关联条件不要乱放

    【SQL开发实战技巧】系列(一):关于SQL不得不说的那些事 【SQL开发实战技巧】系列(二):简单单表查询 【SQL开发实战技巧】系列(三):SQL排序的那些事 【SQL开发实战技巧】系列(四):从执行计划讨论UNION ALL与空字符串UNION与OR的使用注意事项 【SQL开发实战技巧】系列

    2024年01月21日
    浏览(47)
  • SQL实践语句:筛选表中异常数据!关键词:EXISTS

    将条件查询出来的结果集作为新的结果集,用以作为下一步数据筛选的目标集。减少了全表扫描,提升了查询速度。 例句中的相关语句为: 解读1:之所以,SELECT 1,是因为EXISTS只为了判断集合中是否存在该语句。 解读2:之所以,TBL_CODECOUNTRM 没有再提取别名,是因为字句中

    2024年02月16日
    浏览(41)
  • The service already exists! 安装mysql数据库错误!

    当你输入mysql install命令时报The service already exists! 报错的原因是服务已经存在! 说明你之前可能已经装过了。 解决方法: 输入sc delete mysql 提示DeleteService 成功,则表示删除成功,你就可以重新输入mysqld install了。 最后显示Service successfully installed.则代表安装成功,接下来启动

    2024年02月05日
    浏览(57)
  • vscode连接sql数据库插件SQLTools Microsoft SQL Server用法

    vscode下载扩展插件:SQLTools Microsoft SQL Server 下载后选择add new connection 按需配置后点击最下面save connection按钮再点connect now按钮  然后会出现一个sql文件,在这个文件里面编写查询语句等再点run on active connection就会弹出一个右侧窗口可以看数据了  

    2024年02月12日
    浏览(60)
  • sql in和exists的使用场景

    IN  和  EXISTS  是 SQL 中的两种子查询操作符,它们都可以用来测试一个值或一组值是否在子查询的结果集中。然而,它们在某些情况下的性能和语义上有所不同,因此在不同的使用场景中可能会选择不同的操作符。 IN: IN  操作符用于测试一个值是否在一组值中。它通常用于

    2024年02月11日
    浏览(46)
  • 数据库SQL函数 根据身份证号/出生年月 精确计算年龄(Oracle/MySQL)

    问题 根据身份证号统计年龄(18位) Oracle 思路 (1)Substr()函数在Oracle使用中表示被劫取的字符串表达式,截取字符串的内容。 (2)To_date()函数可以转换不同格式的日期,通过使用to_date函数可以将字符串类型的日期转换成date格式。 (3)Months_between()函数反悔两个日期之间的

    2024年02月11日
    浏览(47)
  • 使用DataX工具连接hive数据库:java.sql.SQLException: Could not establish connection to jdbc:hive2://master:1000

    Code:[DBUtilErrorCode-10], Description:[连接数据库失败. 请检查您的 账号、密码、数据库名称、IP、Port或者向 DBA 寻求帮助(注意网络环境).]. - 具体错误信息为:java.sql.SQLException: Could not establish connection to jdbc:hive2://master:10000/datax: Required field \\\'serverProtocolVersion\\\' is unset! Struct:TOpenSessionRe

    2024年04月09日
    浏览(70)
  • 【SQL开发实战技巧】系列(五):从执行计划看IN、EXISTS 和 INNER JOIN效率,我们要分场景不要死记网上结论

    【SQL开发实战技巧】系列(一):关于SQL不得不说的那些事 【SQL开发实战技巧】系列(二):简单单表查询 【SQL开发实战技巧】系列(三):SQL排序的那些事 【SQL开发实战技巧】系列(四):从执行计划讨论UNION ALL与空字符串UNION与OR的使用注意事项 【SQL开发实战技巧】系列

    2023年04月09日
    浏览(40)
  • SQL Server 数据库之SQL Server 数据库的安全设置

    数据库服务器是所有应用的数据中转站,若数据库服务被恶意攻击,可能会造成数据泄露、数据丢失、数据被恶意篡改等诸多无法挽回的损失; 所以,对数据库进行安全设置是每一个数据库管理人员都应掌握的知识; SQL Server 登录模式分为 “Windows 身份验证模式” 和 “SQL

    2024年02月06日
    浏览(72)
  • SQL Server数据库使用SQL Server代理实现数据库自动备份

    在现实中,为了保证数据的安全和完整,防止人为错误和硬件故障等造成的数据丢失和损坏,就需要用到数据库的备份,不同的数据库方法有所差别,我这边主讲SQL Server数据库的备份和使用SQL Server代理作业实现数据库的定时备份。 目录 一、开启SQL Server代理 1、找到SQL Serv

    2024年02月09日
    浏览(75)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包