
关键字执行顺序:
1.from 2.where 3.group by 4.select 5.having 6.order by 7.limit
SQL 语句执行顺序如下:
FROM: 指定要查询的表或子查询,可以包含 JOIN、WHERE 子句过滤等。
WHERE: 对 FROM 子句指定的表或子查询进行限制和过滤。
GROUP BY: 将查询结果按照指定列进行分组,并可以对每个分组计算聚合函数。
SELECT: 选择要查询的列,并应用聚合函数,如果有的话。
HAVING: 对 GROUP BY 分组后的结果进行过滤。
ORDER BY: 根据指定的一列或多列对查询结果进行排序。
LIMIT: 指定查询结果的最大行数。
需要注意的是,该顺序并没有严格的规定,不同的 SQL 数据库可能会有不同的实现,但是大多数情况下遵循这个顺序。此外,有些 SQL 语句中可能并不需要用到所有这些子句,比如没有聚合函数时就不需要 GROUP BY 和 HAVING 子句。
select ...from...where...group by...having...order by...limit
where后面添加查询条件
group by用于分组

建立测试数据:

执行SQL效果:

不使用group by


修改数据库为:

执行SQL:
select count(distinct name),classid from stu group by classid

select count(distinct name),classid from stu

再修改数据库:name为NULL

执行SQL:NULL值在distinct中不参加作用


包含:count(计数)、sum(求和)、max(最大值)、min(最小值)、avg(平均值)、group-concat(将每个分组内的多个值连接起来,形成一个包含所有值的字符串)
函数基本语法:
SELECT column1, GROUP_CONCAT(column2)
FROM table