1月9日小结

  • from后可接子查询语句,但是要重命名(as可省略)同时,子查询用括号括上

from (select * from EMP)[as]Temp

  • where条件语句不能接聚合函数(sum、avg、max、min、count)
  • group by语句是对字段进行分组,天生带去重的功能,group by后的数据表中一行有多组数据,因此select 后不能直接*查全部,select接的字段只能是group by的字段或者聚合函数的字段:

select No,sum(Grade) from scoretable group by No     查询学生的总成绩

select age from scoretable group by No 会报错,因为age字段有多值

  • having的作用,是对group by的聚合字段进行过滤,弥补了where子句后不能接聚合函数的缺陷。

select No,sum(Grade) from scoretable group by No having sum(Grade) > 180 查找总分大于180的学生姓名以及总分数

  • from后可接子查询(重命名),where 后可接子查询,having后也可以接子查询

select No,sum(Grade) from scoretable group by No having sum(Grade) =(select max(avg(Grade)from scoretable group by No))查找总分数最高的学生姓名以及总分数

  • selct语句的执行顺序为:from数据源-》where条件-》group by分组-》having分组过滤-》oder by对结果进行排序-》limit控制显示多少行----》select后字段的最终结果
posted @ 2020-01-09 11:17  柿子秧  阅读(118)  评论(0编辑  收藏  举报