首页 > 技术文章 > MySQL中的注意事项

zdgui 2021-02-18 23:07 原文

一、MySQL中的字段及执行顺序:

select 查询列表 ⑦
from 表1 别名 ①
连接类型 join 表2 ②
on 连接条件 ③
where 筛选 ④
group by 分组列表 ⑤
having 筛选 ⑥ 过滤出数据才能显示,因此在select前
order by排序列表 ⑧ 有数据之后才能进行排序,因此在select后
limit 起始条目索引,条目数; ⑨

二、别名的使用

别名可以使用在定义别名之后的子句中,一旦声明了,之后的语句中只能使用别名(不能使用原名)
别名可以使用中文,使用中文时需要用双引号(")括起来。
select 后面的字段的字段别名,可以使用在group by、having、order by之后
order by之后可以使用别名,但是不能跟带引号的别名(原因不详,后续补充)

三、分组group by的注意事项

使用聚合函数和GROUP BY子句时需要注意以下 4点。
① 只能写在SELECT子句之中
② GROUP BY子句中不能使用SELECT子句中列的别名
③ GROUP BY子句的聚合结果是无序的
④ WHERE子句中不能使用聚合函数

使用聚合函数时,SELECT 子句中只能存在以下三种元素。
● 常数
● 聚合函数
● GROUP BY子句中指定的列名(也就是聚合键)

相对于HAVING子句,更适合写在WHERE子句中的条件:聚合键所对应的条件。
WHERE 子句 = 指定行所对应的条件
HAVING 子句 = 指定组所对应的条件

where后面不能使用聚合函数,但是可以使用标量子查询实现。

推荐阅读