【数据库笔记】子查询

子查询是一个查询语句嵌套在另一个查询语句内部的查询,在SELECT子句中先计算子查询,其结果作为外层另一个查询的过滤条件。为了标记子查询与主查询之间的关系,通常将子查询写在小括号内。
查询可以基于一个表或多个表。
子查询可以添加到SELECT、UPDATE或者DELETE语句,进行多层嵌套。

带ANY、SOME关键字的子查询:ANY和SOME关键字是同义词,只要满足内层子查询中的任何一个比较条件,就返回一个结果作为外层查询的条件。

带ALL关键字的子查询:ALL关键字与ANY和SOME不同,使用ALL时需要同时满足所有内层查询的条件。

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

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

带比较运算符的子查询:在前面介绍的带ANY、ALL关键字的子查询时使用了>比较运算符,子查询时还可以使用其他的比较运算符,如<、<=、=、>=和!=等。

合并查询结果

利用UNION关键字,可以给出多条SELECT语句,并将它们的结果组合成单个结果集。合并时,两个表对应的列数和数据类型必须相同。各个SELECT语句之间使用UNION(执行的时候删除重复记录,所有返回的行是唯一的)或UNION ALL(不删除重复行也不对结果进行排序)关键字分隔。语法如下:

select 字段列表1  from  table1 
union [all]
select 字段列表2   from  table2...

说明:合并产生的新结果集的字段名与字段列表1中的字段名对应。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿珊和她的猫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值