0

我习惯于编写代码行并让它们按顺序执行,从上到下。我相信这几乎是大多数编程语言的工作方式。

在 SQL 中,如果我理解正确的话,首先必须通过执行一些表操作来创建一个表(FROM选择起始表,JOIN以各种方式组合它们,WHERE过滤掉一些行,GROUP BY过滤我们的重复项等)。

一旦你有你的输出表,你可以SELECT用来执行一个最终的表操作:消除不需要的字段。

所以我希望FROM成为第一行代码,并SELECT成为最后一行代码。但SELECT出于某种原因总是第一个...

有没有解释为什么 SQL 命令是反向编写的?

4

2 回答 2

3

SQL 有一个标准,该标准指定了排序。

您缺少有关 SQL 的一些基本知识:它是一种描述性语言,而不是一种过程语言。也就是说,SQL 查询描述了正在生成的结果集,而不是生成这些结果必须采取的步骤。

因此,SQL 子句没有“执行顺序”。所有这些都描述了结果。

也就是说,可能有一些注释可以追溯到 SQL 的原始开发。我最好的猜测是,人们在表格报告中看到的第一件事就是列标题,这就是为什么它SELECT是第一个。我很欣赏拥有FROMfirst 的优雅(因为FROM定义了在整个查询中使用的表和列别名)。但这根本不是语言的定义方式。

于 2021-07-07T18:52:12.433 回答
0

这是 SQL 使用的语法结构,就像任何编程语言的语义一样。

SELECT基本上用于我们需要过滤和获取特定数据的地方。然后,FROM使用的是指表。

它也用于相同目的的普通 SQL 查询中。在程序方面,我们使用SELECT如下:

CREATE PROCEDURE
SelectAllStudent
As 
SELECT * FROM students
GO

然后我们执行程序为:

EXEC SelectAllStudent
于 2021-07-07T18:59:51.603 回答