SQL Server子查询的深入理解

 更新时间:2021年04月02日 14:41:29   作者:Fuzz_  
这篇文章主要给大家介绍了关于SQL Server子查询的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

当由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子查询内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 删除重复记录

    删除重复记录

    删除重复记录...
    2006-08-08
  • sqlldr装载数据实现代码

    sqlldr装载数据实现代码

    本文将详细介绍如何用sqlldr装载数,需要了解更多的朋友可以参考下
    2012-12-12
  • SQL Server查看服务器配置教程详解

    SQL Server查看服务器配置教程详解

    这篇文章主要为大家介绍了SQL Server查看服务器配置教程详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2024-01-01
  • 一个简单的SQL 行列转换语句

    一个简单的SQL 行列转换语句

    在数据库开发中经常会遇到行列转换的问题,比如下面的问题,部门,员工和员工类型三张表,我们要统计类似这样的列表
    2009-08-08
  • 揭秘SQL Server 2014有哪些新特性(4)-原生备份加密

    揭秘SQL Server 2014有哪些新特性(4)-原生备份加密

    SQL Server原声备份加密对数据安全提供了非常好的解决方案。使用原生备份加密基本不会增加备份文件大小,并且打破了使用透明数据加密后几乎没有压缩率的窘境。
    2014-08-08
  • SQLServer 表的索引碎片查询和处理

    SQLServer 表的索引碎片查询和处理

    本文主要介绍了SQLServer 表的索引碎片查询和处理,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-04-04
  • sql Set IDENTITY_INSERT的用法

    sql Set IDENTITY_INSERT的用法

    SET IDENTITY_INSERT 允许将显式值插入表的标识列中。
    2009-03-03
  • Java 实现连接sql server 2000

    Java 实现连接sql server 2000

    JDBC技术事实上是一种能通过JAVA语言访问任何结构化数据库的应用程序接口(API)(Sun这样说的,我也不知道是不是真的),而且现在的JDBC 3.0据Sun说也能访问Execel等电子表格程序!
    2009-06-06
  • 实现SQL分页的存储过程代码

    实现SQL分页的存储过程代码

    本文主要介绍了分页的存储过程所实现代码,使用存储过程可以提高效率与节约时间,需要的朋友可以参考下
    2015-08-08
  • SQL Server 2000安全配置详解

    SQL Server 2000安全配置详解

    这篇文章主要介绍了SQL Server 2000安全配置,需要的朋友可以参考下
    2014-06-06

最新评论