sql之间存在差异(differences between sql exists)和在里面(in)的区别

Sql存在于vs中...

Sql存在于vs中

TSQL中的问题解决可以通过不同的方法来实现,使用其中任何一种方法都可以看到预期的结果。实现最终结果的方法之一是使用IN和EXISTS子句。子句的使用有助于根据可用的子查询过滤结果集。在和中的执行略有不同,正是这些差异被评估。

有各种因素决定是否在或是否存在将被推出。其中之一是表中可用的数据量。大量数据导致SQL server返回到使用索引扫描而不是使用索引查找。

差异

所给出的统计数字也说明了许多应该遵循的执行计划。当服务器积累了足够的统计信息来做出有效的决策时,与第一次没有统计信息时,就会显示出差异。使用中的硬件还决定是否使用in或EXISTS。这在很大程度上取决于可用CPU的数量。

当需要将查询的结果与另一个子查询匹配时,将运行EXISTS。另一方面,在检索列表**定列的值时使用IN。使用哪一个的决定完全基于适当性,即当你觉得它的使用是适当的。

如果使用子查询并返回null值,则整个语句将变为null。这实际上指向EXISTS关键字的使用。当需要比较子查询中的各种值时,就会使用IN关键字。EXISTS关键字主要用于求值true或false语句,in用于大多数相应的子查询语句。

一般来说,EXISTS会比In快,原因是当EXISTS运行时,搜索已经找到了一个匹配项,并且将检查条件是否被证明是正确的。在运行时,它会收集子查询的所有结果,并将它们呈现给进一步的处理,这个过程需要一段时间。

需要注意的是,查询的措辞必须正确,并在运行之前进行检查。无法确保查询结果正确存在并呈现不同的值,这不是SQL server中使用这些结果的目的。优化器在正常工作时必须始终是最优的。

摘要

TSQL中的问题解决通常使用EXISTS和in来完成。

尽管每个优化应该给出相同的值,但在存在和存在滚动的情况下观察到细微的差异。

统计数据是决定是否存在或将要推出的决定因素之一

使用中的硬件在确定是否存在或是否要部署时也很关键

当需要将给定查询的结果与另一个子查询相关联时,EXISTS的运行将非常有用。当真或假陈述需要评估时,EXISTS也很常见。

当需要检索列表中的特定列时,通常使用IN。当需要在子查询中进行值比较时,也通常使用它。

EXISTS在运行时通常比IN快,它会找到一个命中,并检查条件是否被证明是真的

IN的速度较慢,因为它从子查询收集所有结果并对其进行处理。

尽管存在不同的执行,优化应该在EXISTS和in中给出相似的结果。

  • 发表于 2021-06-24 11:50
  • 阅读 ( 145 )
  • 分类:IT

你可能感兴趣的文章

联盟(union)和sqlserver中的union all(union all in sql server)的区别

在没有键的情况下,SQL数据集和结果数据集的所有行之间产生重复的并集。 DBMS是一个创建和管理数据库的软件。一个数据库由许多表组成,这些表相互关联。DBMS帮助执行诸如创建数据库、创建表、**和更新数据等操作。此外...

  • 发布于 2020-10-18 10:13
  • 阅读 ( 245 )

哪里(where)和sql中的having子句(having clause in sql)的区别

...。其中两个是在哪里和有。本文讨论SQL中where和having子句之间的区别。SQL中where和having子句的关键区别在于,where子句用于在分组或聚合发生之前过滤记录,而having子句用于在分组或聚合发生后过滤记录。 目录 1. 概述和主要区别 ...

  • 发布于 2020-10-24 02:15
  • 阅读 ( 239 )

如何在mysql中有效地处理日期和时间

... SELECT MONTH(created_at), SUM(amount) FROM orders WHERE created_at BETWEEN '2020-01-01 00:00:00' AND '2020-12-31 23:59:59' GROUP BY MONTH(created_at); ...

  • 发布于 2021-03-26 17:00
  • 阅读 ( 244 )

中的差异(differences between in)和在内部(within)的区别

“在”与“在”之间 “in”和“in”两个词称为介词,用于连接名词、代词和短语来完成句子。它们还表明了它们所连接的对象之间的空间和逻辑关系,这些对象赋予句子合理的意义。例如:“车在**里。”“in”用于描述汽车...

  • 发布于 2021-06-23 14:11
  • 阅读 ( 203 )

变量(variable)和sql中的参数(parameter in sql)的区别

...特定类型的单个数据值,而参数有助于在存储过程和函数之间交换数据。 SQL(structuredquerylanguage)是一种在关系数据库中存储、管理和检索数据的计算机语言。诸如MSSQL之类的RDBMS使用变量和参数,我们可以在SQL过程语句中的任...

  • 发布于 2021-07-01 06:02
  • 阅读 ( 624 )

实例(instance)和sql server中的数据库(database in sql server)的区别

...功能2.什么是数据库-定义,功能3.SQL Server中实例和数据库之间的关系是什么-关联概述4.SQL Server中实例和数据库之间的区别是什么-关键区别的比较 关键术语 数据库、实例、SQL Server 什么是sql server中的实例(instance in sql server)? 实...

  • 发布于 2021-07-01 06:19
  • 阅读 ( 986 )

默认实例(default instance)和sql server中的命名实例(named instance in sql server)的区别

...多个命名实例。因此,这是SQLServer中默认实例和命名实例之间的主要区别。 应用 如果用户计划安装SQL server的单个实例,则该实例是默认实例。但是,如果用户计划在同一台计算机上安装多个实例,则默认实例以外的实例都是命...

  • 发布于 2021-07-01 06:34
  • 阅读 ( 533 )

(用熟石膏、木板等)装天花板(ceil)和sql中的楼层(floor in sql)的区别

...,功能2.什么是SQL中的FLOOR–定义,功能3.SQL中的CEIL和FLOOR之间的差异–关键差异的比较 关键术语 CEIL、FLOOR、RDBMS、SQL 什么是sql中的ceil(ceil in sql)? 函数的作用是:返回大于或等于某个特定数字的最小整数值。 语法如下。 CEIL...

  • 发布于 2021-07-01 10:01
  • 阅读 ( 266 )

滴(drop)和在sql中删除(delete in sql)的区别

...功能3.什么是SQL中的DELETE–定义,功能4.SQL中的DROP和DELETE之间的区别是什么–主要区别的比较 关键术语 DDL、DROP、DELETE、SQL、RDBMS 什么是sql命令(sql commands)? SQL命令主要有三个子部分。它们如下。 数据定义语言(DDL)–这些命...

  • 发布于 2021-07-01 13:05
  • 阅读 ( 238 )

改变(alter)和在sql中更新(update in sql)的区别

...功能2.什么是SQL中的UPDATE–定义,功能3.SQL中的ALTER和UPDATE之间的区别是什么–关键区别的比较 关键术语 ALTER、DDL命令、DML命令、RDBMS、SQL、UPDATE 什么是在sql中更改(alter in sql)? “ALTER”是一个DDL命令,用于帮助修改数据库或相...

  • 发布于 2021-07-01 13:30
  • 阅读 ( 234 )
铃duang子
铃duang子

0 篇文章

相关推荐