gpt4 book ai didi

sql - 查询引擎将如何评估此 SQL 查询?

转载 作者:行者123 更新时间:2023-12-04 07:07:30 30 4
gpt4 key购买 nike

我正在玩 SQL 查询,我想到了这个 - select x,y from table T .

这里 x 和 y 可以是算术表达式,如 2.0/5.0 OR 1+2,结果为表 T 的行数,第一列值为 2.0/5.0,即 0.444444,第二列值为 3。

我很想知道这个查询是如何执行的。我了解到,在 SQL 查询引擎中,存在从查询的 SQL 表示到内部表示(如关系代数)的映射,然后对其进行优化以产生最佳查询执行计划。

如果错误,请纠正我的理解 - 对于我所说的查询,我的查询 Q 到内部表示的内部映射与 select * from table T 等效。 .然后对于所有返回的行,投影出 n 列,其中 n 是 Q 中规定的算术表达式的数量。 n 列的所有行都将分别对算术表达式进行评估。

干杯

最佳答案

它很可能取决于数据库。

如果您用于 x 和 y 的表达式是常量,那么一个体面的数据库应该能够识别并仅执行一次计算并将值放入结果集中。

如果表达式包含一些其他函数,那么它必须每次都执行该表达式,以防该函数有副作用。

一般来说,你是正确的,计算 from 子句中描述的虚拟表,然后我相信来自 where 子句的过滤器被应用,然后是 select 子句。

关于sql - 查询引擎将如何评估此 SQL 查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/899618/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com