select 语句的元素
逻辑处理顺序:
有必要在学Sql之前,先了解一些基础的东西,select语句的目标是对表进行查询、应用一定的逻辑处理,并返回结果。在大多数编程语言中,代码行是按照它们的编写顺序来执行处理的,而在sql中,情况有些不同,即使select子句在查询中最先出现,在逻辑上差不多是最后才处理的。
各子句在逻辑上按以下顺序进行处理。
1.From
From子句是在逻辑处理阶段第一个要处理的查询子句。这个子句用于指定要查询的表名,以及对这些表进行操作的表运算符。
2.Where
Where子句中,可以指定一个谓词或者逻辑表达式。
3.Group By
Group By 阶段可以将前面逻辑查询处理阶段返回的行按“组”进行组合。每个组由在Group By子句中指定的各元素决定。
4.Having
Having子句用于指定对组进行过滤的谓词或者逻辑表达式,这与where阶段对单独的行进行过滤相对应。只有能让having子句中逻辑表达式为true的组,having阶段才会把这些组返回到下一个逻辑查询处理阶段。逻辑表达式计算结果为false或者unknown的组将被过滤掉。
5.Select
Select子句用于指定需要在查询返回的结果集中包含的属性(列)。select列表中的表达式可以直接基于正在查询的表的各个列,也可以在此基础上作进一步的处理。
6.Order By
Order By子句用于展现数据时对输出的结果中的行进行排序。
7.Top
Top选项是T-SQL特有的,用于限制查询返回的行数或百分比。
8.Over
Over子句用于为行定义一个窗口(Window:即是用户指定的一组行),以便进行特定的运输。可以把行的窗口简单地认为是运算将要操作的一个行的集合。
(建议sql语句每句结束的时候,使用分号)