SELECTt语句是SQL语句的核心语句,SELECT语句的一般格式为:
SELECT [ALL | DISTINCT] <目标列表达式> [别名] [,<目标列表达式> [别名]]...
FROM<表名或视图名> [别名] [,<表名或视图名> [别名]] ...
[WHERE <条件表达式>]
[GROUP BY <列名1>[HAVING <条件表达式>]]
[ORDER BY <列名2> ] [ASC | DESC];
select语句的主要的关键词分别为 select 、from、 where、 group by、having和order by。
执行顺序如下:
from、where、group by、having、select、order by 。
from:从哪张表查询数据。执行顺序是自右至左,在写SQL语句的时候,尽量把数据量小的表放在最右边来进行关联(小表去驱动大表)。
where:过滤数据条件。执行顺序是从左至右,在写SQL语句的时候,把能筛选中小量数据的条件放在where语句的最左边(用小表去驱动大表)。
group by:如何将where过滤出的数据进行分组。
having:对已经分组的数据进行过滤的条件。
select:查看结果集中的哪个列或是列的计算结果。在写SQL语句的时候,尽量少用*号,而是写出所需的具体字段。
order by:依据什么顺序来查看返回的数据。执行顺序是从左至右。
having和where的用法区别:
1、having只能用在group by 之后,它是对分组后的结果进行筛选(使用having的前提条件是分组)。
2、where在group by之前,也即在having之前。
3、where后的条件表达式里不允许使用聚合函数(count,sum,avg,max,min),而having可以。