iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >SQL Server中怎么实现子查询
  • 139
分享到

SQL Server中怎么实现子查询

2024-04-02 19:04:59 139人浏览 独家记忆
摘要

这篇文章将为大家详细讲解有关SQL Server中怎么实现子查询,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1、子查询概念介绍子查询可以嵌套在SELEC&

这篇文章将为大家详细讲解有关SQL Server中怎么实现子查询,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

1、子查询概念介绍

子查询可以嵌套在SELECT、INSERT、UPDATE、DELETE语句或其他子查询语句中的查询,子查询一般作为查询中间结果集角色,子查询也称为内部查询或内部选择,包含子查询的语句称为外部查询或外部选择。根据可用系统内存和查询中其他表达式的复杂程度的不同,嵌套限制也有所不同,一般可以支持嵌套32层。个人建议尽量避免多层嵌套这样sql语句的可读性和可维护性都会很差。使用表达式的地方一般都可以使用子查询。

2、子查询分类

单值子查询:子查询的返回值属于单个。常见与查询列、单值的查询条件使用。

多值子查询:子查询的返回值多个。常见in、exists等筛选语句使用。

3、子查询的使用场景

3.1 选择列表中使用子查询

选择列表中使用子查询作为查询结果一列值出现的。该情况下调用子查询返回的只能是单值。只能是单值子查询。

-- 查询学生姓名、年龄、总成绩  select a.username,a.age,(select sum(score)  from Score where userId=a.userId)) totalScorefrom UserInfo a

3.2 作为查询条件

-- 查询部门名称是技术部的员工信息 单值查询 select username,age,address from Emp where deptno=(select top 1 deptno  from DeptInfo where depName='技术部'); -- 查询产品库存大于10吨的产品列表 多值查询 select name,code from ProductInfo where Code in (select s.code from StockInfo s where Qty>20); 同样的insert、update、delete用法比较类似比如: -- 删除库存量为0的产品 delete from ProductInfo where Code in (select s.code from StockInfo s where qty=0); -- 更新库存量为0的产品remark字段更新为标记 update ProductInfo set remark='标记' where Code in (select s.code from StockInfo s where qty=0)

4、子查询和连接查询的关系

很多包含子查询的SQL语句都可以改成连接查询的形式表示,包含子查询的语句和语义上等效的无子查询的语句性能差别不大。但针对检查存在性的情况中,联接查询性能更好,数据量越大联接查询会更能体现效率。

比如:

-- 查询学生姓名、年龄、总成绩 select min(a.username),min(a.age),sum(score) totalScore from UserInfo a  left join Score b on a.userId=b.userId

5、包含in和exists子查询区别

in子查询:结果是包含0个或者多个值的列表,表示值的等于关系。

exists子查询:它只返回true或false。表示一种存在的行为。

通常情况下in和exist可以互换。

当子查询结果不存在NULL值时,not in和not exists得到的查询结果一样,所生成的查询计划也一样。

当in里面的值为null的情况下查询记录为0;当exists里面的值为null情况下相当于查询条件不起作用。

示例:

select name,age UserInfo where userId in (1,2,3,4); select name,age UserInfo where exists (1,2,3,4);

说明:EXISTS与IN的使用效率的问题,通常情况下采用exists要比in效率高,但要看实际情况具体使用:IN适合于外表大而内表小的情况;EXISTS适合于外表小而内表大的情况。

6、包含比较运算符的子查询

子查询可以由一个比较运算符(=、<>、>、>=、<、!>、!<或<=)引入。使用比较运算符引入的子查询必须返回单个值而不能一个值列表。否则,SQL  Server将显示一条错误信息。

关于SQL Server中怎么实现子查询就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

您可能感兴趣的文档:

--结束END--

本文标题: SQL Server中怎么实现子查询

本文链接: https://www.lsjlt.com/news/58011.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • SQL Server中怎么实现子查询
    这篇文章将为大家详细讲解有关SQL Server中怎么实现子查询,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1、子查询概念介绍子查询可以嵌套在SELEC&...
    99+
    2024-04-02
  • sql server中怎么实现递归查询
    sql server中怎么实现递归查询,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。sql server 通过CTE来支持递归查询,这对查...
    99+
    2024-04-02
  • 如何在SQL Server数据库中实现子查询
    本篇文章给大家分享的是有关如何在SQL Server数据库中实现子查询,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。1 子查询子查询是一个嵌套在select、insert、up...
    99+
    2023-06-14
  • SQL Server的子查询详解
    目录一、子查询基础知识二、子查询规则三、限定子查询中的列名四、子查询的多层嵌套五、相关子查询六、子查询类型总结一、子查询基础知识 子查询是嵌套在SELECT、INSERT、UPDATE、DELETE语句中或另一个...
    99+
    2023-04-12
    SQL Server子查询语句 SQL Server子查询
  • SQL Server中怎么实现数据库链接查询
    本篇文章给大家分享的是有关SQL Server中怎么实现数据库链接查询,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。SQL Server数据库...
    99+
    2024-04-02
  • SQL Server子查询的规则是什么
    这篇文章主要介绍“SQL Server子查询的规则是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“SQL Server子查询的规则是什么”文...
    99+
    2023-04-21
    sql server
  • SQL如何实现子查询
    这篇文章主要为大家展示了“SQL如何实现子查询”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“SQL如何实现子查询”这篇文章吧。 1...
    99+
    2024-04-02
  • SQL Server中怎么连接查询
    SQL Server中怎么连接查询,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。什么是连接查询呢?概念:根据两个表或多个表的列之间的关系,从这...
    99+
    2024-04-02
  • mysql中怎么实现查询和子查询
    这篇文章给大家介绍mysql中怎么实现查询和子查询,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。一、查询的五种子句        wher...
    99+
    2024-04-02
  • SQL Server数据库连接查询和子查询实战案例
    目录前言1.查询所有学生的学号、姓名、选修课程号和成绩2.查询选修了课程名称为“数据库原理与应用”的学生的学号和姓名3.使用别名实现查询所有学生的学号、姓名、...
    99+
    2023-05-16
    sqlserver连接查询语句 sqlserver子查询 sqlserver子查询语句
  • SQL Server子查询的深入理解
    当由where子句指定的搜索条件指向另一张表时,就需要使用子查询或嵌套查询。 1 子查询 子查询是一个嵌套在select、insert、update或delete语句或其他...
    99+
    2024-04-02
  • SQL Server中怎么实现多表连接查询功能
    SQL Server中怎么实现多表连接查询功能 ,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。具体代码如下所示:-- ...
    99+
    2024-04-02
  • mysql中怎么实现子查询
    今天就跟大家聊聊有关mysql中怎么实现子查询,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。 MySQl从4.11版后已经完全支持嵌套查询...
    99+
    2024-04-02
  • 怎么在SQL Server中实现一个模糊查询功能
    怎么在SQL Server中实现一个模糊查询功能?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。1.用_通配符查询"_"号表示任意单个字符,该...
    99+
    2023-06-14
  • Mysql中怎么实现子查询和联合查询
    Mysql中怎么实现子查询和联合查询,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。查询: 在select查...
    99+
    2024-04-02
  • mysql中怎么实现exists子查询
    这篇文章给大家介绍mysql中怎么实现exists子查询,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。 子查询可以分为:from where 和 exists子查询  分类表...
    99+
    2024-04-02
  • SQL子查询怎么使用
    这篇“SQL子查询怎么使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“SQL子查询怎么使用”文章吧。SQL子查询或称为内部...
    99+
    2023-06-27
  • SQL Server中怎么优化多表查询
    这期内容当中小编将会给大家带来有关SQL Server中怎么优化多表查询,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。1.执行路径ORACLE的这个功能大大地提高了SQL...
    99+
    2024-04-02
  • SQL Server 中怎么交叉表查询case
    SQL Server 中怎么交叉表查询case,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。代码如下所示:表landundertake结构如下...
    99+
    2024-04-02
  • SQL Server中怎么查询全文检索
    本篇文章给大家分享的是有关SQL Server中怎么查询全文检索,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。1. 改变文件存储时的文件名  ...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作