学习目标
where
- 仅使用 SELECT 和 FROM 子句 你会受到表中的每一行数据均返回的限制
starting with
- STARTING WITH 子句附加于 WHERE 子句上 它的作用与 LIKE exp% 相似
order by’
- ORDER BY子句为你提供了对输出的结果进行排序的方法。
- ORDER BY可以使用多个字段 下例是按 PAYEE 和 REMARKS 进行排序
先对payee降序,再对remarks升序, - 默认是升序,可以使用不出现在搜索列的字段进行排序。
- 字母的正顺排列而把第二列按字母的逆序进行排列
ORDER BY PAYEE ASC REMARKS DESC
group by
- select +列或汇总,不能是*,最好分组的列不要出现其他列 ,
- 多个分组,组成一个整体,重新进行分组
- 不可以对where子句进行汇总,但可以用分组进行汇总,
SELECT PAYEE SUM AMOUNT FROM CHECKS GROUP BY PAYEE - SQL 无法把正常的列和汇总函数结合在一起 这时就需要 GROUP BY 子
句 它可以对 SELECT 的结果进行分组后在应用汇总函数
having
对分组的数据进行限制,由于where子句不能出现汇总函数,所以产生having
- HAVING AVG(SALARY) < 38000 是对每一
组的 SALARY 求平均数并将数值大于 38000 的组返回 正像你所想到的那样 HAVING
SALARY < 38000 则是用另外一种处理方式 所以就会有不同的结果 根据 SQL 的解释规
则 如果用户要求对分组数据执行 HAVING SALARY < 38000 它么它会对数据库中的每
个记录均进行检查 并且剔除 SALARY 大于 38000 的 这样的话就只有 PR 符合条件了