我正在玩 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 列的所有行都将具有它们各自对算术表达式的评估。
干杯