1.分组查询
分组查询是指使用GROUP BY
字句对查询信息进行分组。
格式:SELECT 字段1,字段2… FROM 表名 GROUP BY分组字段 HAVING 分组条件;
分组操作中的having
子语句,是用于在分组后对数据进行过滤的,作用类似于where
条 件。
- having与where的区别:
- having是在分组操作执行后,对分组后的数据进行过滤.。
- where是在分组操作执行前,对分组前表的原始列进行过滤
- having后面可以使用聚合函数。where后面不可以使用聚合函数,只能用条件过滤。
聚合函数概念
聚合函数作用于一组数据,并对一组数据返回一个值。
聚合函数类型:
AVG()
SUM()
MAX()
MIN()
COUNT()
2.子查询
SQL还允许创建子查询(subquery),即嵌套在其他查询中的查询。
在WHERE子句中使用子查询能够编写出功能很强并且很灵活的SQL语句。
对于能嵌套的子查询的数目没有限制,不过在实际使用时由于性能的限制,不能嵌套太多的子查询。
提示:子查询一般与IN操作符结合使用,但也可以用于等于、不等于等。