21-子查询

子查询是一个查询语句会嵌套在另一个查询语句的内部的查询(MySQL4.1开始)

子查询的结果作为外层另一个查询的过滤条件

子查询常用的操作符:

  • ANY(SOME)
  • ALL
  • IN
  • EXISTS
1.带ANY,SOME关键字的子查询

ANY/SOME是同义词,它们允许创建一个表达式对子查询的返回值列表进行比较,只要满足内层子查询中国的任何一个比较条件,就返回一个结果作为外层查询的条件.

2.带ALL关键字的子查询

与ANY/SOME不同,使用ALL时需要同时满足所有的内层查询的条件

3.带EXISTS关键字的子查询

EXISTS关键字后边的参数是一个任意的子查询,系统对子查询进行运算以判断它是否返回行,如果至少返回一行,那么EXISTS返回的结果为true,此时外层查询语句将进行查询,如果子查询没有返回任何行,那么EXISTS返回的结果是false,此时外层语句将不进行查询

4.带IN/NOT IN关键字的子查询

IN进行子查询时,内层查询语句仅仅返回一个数据列,这个数据列里的值将提供给外层查询语句进行比较操作

MySQL实际上执行了两个操作过程,即先执行内层子查询,再执行外层查询.内层查询结果作为外部查询的比较条件

子查询的功能爷可以通过连接查询完成,但是子查询是的MySQL代码更容易阅读和编写

5.带比较运算符的子查询

子查询还可以使用其他的比较运算符,如"<","<=","=",">="和"!="等

转载于:https://my.oschina.net/majorx/blog/3038629

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值