MySQL(九)数据的查询操作(下)

4 聚合函数

(1)计数

  • count(*)表示计算总行数,括号中写星号与字段名,结果是相同的
- 查询表中数据数量 
select count(*) from employee;

(2)最大值

  • max(列)表示求此列的最大值
-- 查询编号最大的人 
select max(empno) from employee; 
--查询编号最大的骑兵都统 
select max(empno) from employee where job='骑兵都统';

(3)最小值

  • min(列)表示求此列的最小值
--查询编号最小的骑兵都统 
select min(empno) from employee where job='骑兵都统';

(4)求和

  • sum(列)表示求此列的和
-- 计算总工资 
select sum(salary) from employee; 
-- 计算平均工资 
select sum(salary)/count(*) as 平均工资 from employee;

(5)平均值

  • avg(列)表示求此列的平均值
    select avg(salary) as 平均工资 from employee;

5 分组

group by 字段

  1. group by 字段 的含义:将查询结果按照1个或多个字段进行分组,字段值相同的为一组
  2. group by可用于单个字段分组,也可用于多个字段分组
select job from employee group by job;
group by单独使用时,只显示出每组的第一条记录, 所以group by单独使用时的实际意义不大通常会和其他方法合用。

1 group by + group_concat()

  • group_concat(字段名)可以作为一个输出字段来使用
  • 表示分组之后,根据分组结果,使用group_concat()来放置每一组的某字段的值的集合
-- 查看每个工作中的名单 
select job,group_concat(nickname) from employee group by job; 
-- 查看每个工资中的名单 
select salary,group_concat(nickname) from employee group by salary;

2 group by + 聚合函数

-- 查看每个工作中的平均工资 
select job,avg(salary) from employee group by job;
 -- 查看每个工作中的人数,和平均工资
 select job,count(*),avg(salary) from employee group by job;

3 group by + having

  • having 条件表达式:用来分组查询后指定一些条件来输出查询结果
  • having作用和where一样,但having只能用于group by
-- 查看每个工作中的人数,且人数大于2,和平均工资 
select job,count(*),avg(salary) from employee group by job having count(*) >2;

6 获取部分行

格式: select * from 表名 limit [offset,]count

  • offset:跳过数据条数
  • count:获取数据数量
-- 跳过前两条,从第三条数据开始,获取3条数据
 select * from employee limit 2,3; 
-- 获取前10条数据 
select * from employee limit 10; 
select * from employee limit 0,10;

分页

--已知:每页显示m条数据,当前显示第n页,求第n页数据 
select * from employee limit (n-1)*m,m; 12
SELECT select_expr [,select_expr,...] [
      FROM tb_name 
      [WHERE 条件判断] 
      [GROUP BY {col_name | postion} [ASC | DESC], ...] 
      [HAVING WHERE 条件判断] 
      [ORDER BY {col_name|expr|postion} [ASC | DESC], ...]
      [ LIMIT {[offset,]rowcount | row_count OFFSET offset}] ]
posted @ 2020-12-29 14:37  小杜打醋尢买布  阅读(92)  评论(0编辑  收藏  举报