子查询关键字-ALL、ANY、SOME、IN、EXISTS

简介: 子查询关键字-ALL、ANY、SOME、IN、EXISTS

子查询关键字-ALL、ANY、SOME、IN、EXISTS



ALL

select from where c > all(查询语句)
等价于
select from where c > result1 and c > result2 and c > result3
特点:
  1:all与子查询返回的所有值比较为true 则返回true
  2:ALL可以与= > < >= <= <>结合使用
  3:all表示指定列中的值必须要大于子查询集中的每一个值
eg:查询年龄大于'1003'部门所有年龄的员工信息
select * from emp3 where age > all(select age from emp3 where dept_id='1003');
   查询不属于任何一个部门的员工信息
select * from emp3 where dept_id != all(select deptno from dept3);

ANY SOME

select from where c > any(查询语句)
等价于
select from where c > result1 or c > result2 or c > result3
特点:
  1:any与子查询返回的所有值比较为true 则返回true
  2:any可以与= > < >= <= <>结合使用
  3:any表示指定列中的值要大于子查询集中任意的一个值
eg:查询年龄大于'1003'部门任意一个员工年龄的员工信息
select * from emp3 where age > any(select age from emp3 where dept_id='1003');
some和any的作用是一样的,some可以理解为是any的别名

IN

select from c in (查询语句)
等价于
select from where c =result1 or c=result2 or c=result3
特点:
  in关键字,用于判断某个记录的值,是否在指定的集合中
  在in关键字前面加上not可以将条件反过来
eg:查询研发部和销售部的员工信息,包括员工工号,员工名字
select c.cid,c.name from cmp3 c where dept_id in (select deptno from dept3 where name='研发部' or name='销售部');

EXISTS

select from where exists(查询语句)
特点:
  该子查询如果"有数据结果"(至少返回一行数据),则该EXISTS()的结果为true 外层查询执行
  该子查询如果"没有数据结果"(没有任何数据返回),则该EXISTS()的结果为false 外层查询不执行
  注意:EXISTS关键字,比in关键字的运算效率高,在实际开发中 特别是数据量大的时候推荐使用exists关键字
eg:查询公司是否有大于60岁的员工,有则输出
select * from epm3 a where exists (select * from emp3 b where a.age>60)
查询所属部门的员工信息
select *from dept3 a where exists (select * from emp3 b where a.deptno=b.dept_id)
目录
相关文章
|
数据可视化 IDE 定位技术
R语言与RStudio的下载与安装方法
R语言与RStudio的下载与安装方法
1369 1
|
SQL 缓存 NoSQL
【前后端】低代码平台Jeecg-Boot 3.2云服务器部署流程
【前后端】低代码平台Jeecg-Boot 3.2云服务器部署流程
1888 0
【前后端】低代码平台Jeecg-Boot 3.2云服务器部署流程
|
SQL 关系型数据库 MySQL
MySQL 中exists与in及any的用法详解
MySQL 中exists与in及any的用法详解
389 3
|
Apache
基于apache集合工具包的并集、交集、差集工具类
基于apache集合工具包的并集、交集、差集工具类
352 1
|
9月前
|
人工智能 API Python
干货教程|PyCharm如何接入DeepSeek实现AI编程
干货教程|PyCharm如何接入DeepSeek实现AI编程
1453 0
|
关系型数据库 MySQL Unix
【MySQL用法】MySQL 中 datetime 和 timestamp 的区别与选择
【MySQL用法】MySQL 中 datetime 和 timestamp 的区别与选择
1258 0
|
SQL 关系型数据库 MySQL
MySQL 高级(进阶) SQL 语句
MySQL 提供了丰富的高级 SQL 语句功能,能够处理复杂的数据查询和管理需求。通过掌握窗口函数、子查询、联合查询、复杂连接操作和事务处理等高级技术,能够大幅提升数据库操作的效率和灵活性。在实际应用中,合理使用这些高级功能,可以更高效地管理和查询数据,满足多样化的业务需求。
1619 3
|
SQL 数据处理 数据库管理
如何在 SQL Server 中使用 LEFT
【8月更文挑战第9天】
681 2
如何在 SQL Server 中使用 LEFT
|
SQL 关系型数据库 数据库
使用 PostgreSQL 和 Python 实现数据库操作
【10月更文挑战第2天】使用 PostgreSQL 和 Python 实现数据库操作
|
存储 JSON 关系型数据库
mysql中find_in_set()函数用法详解及增强函数
总结而言,`FIND_IN_SET()`是MySQL中处理由逗号分隔的字符串列表的一种便捷方法,尤其适用于列表相对较短且不经常更改的场景。然而,对于更为复杂的需要高性能和可扩展性的数据库设计,它可能不是最优选择,应考虑使用更加正规化的数据库结构。
1999 2
mysql中find_in_set()函数用法详解及增强函数