SQL基础教程MICK版 ···第三章总结
SELECT语句
关于上表的语句顺序 和 执行顺序
完整的语法结构
/*
SELECT <列名1>,....
FROM <表名>
WHERE <对上面列名的限定> -- 聚合键的限定写这里(上一章总结过了 这里不细总结)
GROUP BY <列名1>,... -- 这里必须和SELECT的聚合键一致
HAVING <对聚合函数的限定> -- 聚合函数的限定一般写这里
ORDER BY <列名> DESC,...; -- 这里有 DESC ASC(默认)两种模式,可以对SELECT中未出现的列进行操作。
-- 当多个列时, 第一个列的值如果相同,才执行后面的排序指令。
-- 换句话说,ORDER BY的第一列执行权限最高,之后递减。
*/
GROUP BY需要注意的点
- 它的操作结果是没有顺序的
- 不能使用SELECT中列的别名(前面学过的AS)
用于限定GROUP BY的 HAVING子句
-
构成要素
常数 、 聚合函数、 聚合键
HAVING子句的聚合键限定可以在WHERE中进行操作。这样性能会高一点
关于ORDER BY子句
- 与GROUP BY不同,它可以使用SELECT中的别名
- 可以使用SELECT中未出现的列名
- 可以指定多个排列键
- 不能使用列的编号(防止高版本与低版本不兼容,可读性差)