接上一篇mysql数据库查询SQL语句总结http://blog.youkuaiyun.com/u010377383/article/details/54928339;在此继续是单表查询的,主要有:
聚合查询、分页查询、查询排序、分组查询
下面是各个查询的详细语句和解释:
/* 7、聚合查询(使用聚合函数的查询)
常用的聚合函数:sum()求和函数 avg() max() min() count()
需求查询所有员工的总奖金
*/
SELECT SUM(bonus) FROM ssh_employee;
/*统计所有员工的平均工资*/
SELECT avg(salary) FROM ssh_employee;
/*查询工资最高的分员工*/
SELECT max(salary) FROM ssh_employee;
/*查询工资最低的分员工*/
SELECT min(salary) FROM ssh_employee;
/*统计公司员工人数*/
SELECT count(*) FROM ssh_employee;
/*8、分页查询 (LIMIT(起始行,查询记录数))
需求查询1、2条记录
*/
SELECT * FROM ssh_employee LIMIT 0,2;
/*需求查询3、4条记录*/
SELECT * FROM ssh_employee LIMIT 2,2;
/*9、查询排序(ORDER BY)
默认情况下,按照记录插入的顺序排序
语法:ORDER BY 字段 ASC/DESC
ASC:顺序(递增)例子:1,2,3或a,b,c
DESC:倒序(递减)例子:3,2,1或c,b,a
*/
SELECT * FROM ssh_employee ORDER BY LAST_NAME ASC;/*正序*/
SELECT * FROM ssh_employee ORDER BY LAST_NAME ASC; /*倒序*/
/*
多排序条件下的排序:
需求按照工资的正序,奖金的倒序
执行结果分析:排序会按照第一个条件进行排序,如果存在相同的数据时,若无后续排序条件,
则按照默认的插入顺序排列,若有后续条件。则按照后续条件进行排列。依次类推。
*/
SELECT * FROM ssh_employee ORDER BY salary ASC,bonus DESC;
/*
10、分组查询(GROUP BY)
需求查询来自省市的员工人数
预期结果:
上海 1人
北京 1人
重庆 2人
*/
SELECT address,COUNT(*) AS '人数' FROM ssh_employee GROUP BY address;
/*
分组查询后筛选(分组后筛选用having,分组前筛选用where)
需求获取人数为 1 的地区
*/
SELECT address,COUNT(*) AS '人数' FROM ssh_employee GROUP BY address HAVING COUNT(*)=1;