• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

SQL Server子查询的深入理解

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

当由where子句指定的搜索条件指向另一张表时,就需要使用子查询或嵌套查询。

1 子查询

子查询是一个嵌套在select、insert、update或delete语句或其他子查询中的查询。任何允许使用表达式的地方都可以使用子查询。

1.1语法规则:

子查询的select查询总使用圆括号括起来不能包括compute或for browse子句如果同时指定top子句,则可能只包括order by子句子查询最多嵌套32层,个别查询可能会不支持32层嵌套任何可以使用表达式的地方都可以使用子查询,主要它返回的是单个值如果某个表只出现在子查询中而不出现在外部查询中,那么该表中的列就无法包含在输出中

1.2 语法格式:

where 查询表达式 [not] in(子查询)where 查询表达式 比较运算符 [any|all] (子查询)where [not] exists (子查询)

2 嵌套查询

嵌套查询是指将一个查询块嵌套在另一个查询块的where子句或having短语的条件中的查询。

嵌套查询中上层的查询块称为外侧查询或父查询,下层查询块称为内层查询或子查询。SQL语言允许多层嵌套,但是在子查询中不允许出现order by子句,order by子句只能用在最外层的查询中。

嵌套查询的处理方法是:先处理最内侧的子查询,然后一层一层地向上处理,直到最外层的查询块。

2.1 简单的嵌套查询

子查询的运算符含有=、<>、<、>、<=、>=

三个查询:

第一个:查询年纪>25的老师所教的学生

第二个:查询年纪>25的老师

第三个:验证查询到的学生信息

对比:当子查询中的分那会的结果不是一个时,父查询无法正常工作

2.2 带IN的嵌套查询

当子查询返回一系列值时,适合带IN的嵌套查询。

2.3 NOT IN

2.4 SOME

2.5 ANY

2.6 ALL

2.7 EXIST

总结

到此这篇关于SQL Server子查询的文章就介绍到这了,更多相关SQL Server子查询内容请搜索极客世界以前的文章或继续浏览下面的相关文章希望大家以后多多支持极客世界!


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Navicat 连接SQLServer数据库(图文步骤)发布时间:2022-02-08
下一篇:
SQLServer2019安装教程图文详解发布时间:2022-02-08
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap