SQL 查询语句 in、any、all、some

1.概念认知

 in: 等于列表中的任何一个值

 any: 比较子查询返回的每个值的值,可以与=、>、>=、结合起来使用,分别表示等于、大于、大于等于、小于、小于等于、不等于其中的任何一个数据。有任何一个满足就返回true。

all:比较子查询返回的每个值的值,可以与=、>、>=、结合是来使用,分别表示等于、大于、大于等于、小于、小于等于、不等于其中的其中的所有数据

 注意:all比的是全部都满足才返回true,是比所有,也就是说全部数据中只要有一个不对就返回false,查询值为空。

some:是any的别名,不常用,早期的SQL仅仅允许使用【any】,后来的版本为了和英语的【any】相区分,引入了【some】,同时还保留了【any】关键词。

 any 简单示例 (any是比较多个,比较符是比较单个):

SELECT *
FROM students
WHERE score > ANY (SELECT score FROM students WHERE class = 'A')

        这个查询语句中,首先在子查询中筛选出班级为A的学生的所有成绩,然后与外部查询中的成绩值进行比较,如果外部查询中的成绩值大于子查询中的任意一个成绩,则返回该记录。因此,它们可以结合使用,但是它们代表的含义是不同的。

2.in和any

  • 相同点:

in和any从SQL语句上看是没有什么不同的,查询的结果都是一样的。

  • 不同点:

从查询的的逻辑顺序上看:

  1. in是比列表中的任意一个数据,列表是一个整体,直接拿整体比较。
  2. any是和查询的每一个返回值做对比,一条一条的逐一对比、而且前面还必须要带操作符。

3.整体不同

  • in中可以直接写数值,但是all和any不能直接写数值
  • all和any语句中要放入查询一个列的子查询语句,子查询语句的类型要和作比较的条件类型一致
  • all、any、some必须和比较运算符结合使用,不能单独使用

  • 11
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值