• 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}] ]
    
  • 相关阅读:
    4.graph.h
    3.俄罗斯方块项目
    3.栈的实现
    26.多线程
    25.Detours劫持技术
    codeforces 616E Sum of Remainders (数论,找规律)
    poj2387 Til the Cows Come Home 最短路径dijkstra算法
    poj1274 The Perfect Stall (二分最大匹配)
    poj1459 Power Network (多源多汇最大流)
    Oracle RAC/Clusterware 多种心跳heartbeat机制介绍 RAC超时机制分析
  • 原文地址:https://www.cnblogs.com/duxiangjie/p/14206464.html
Copyright © 2020-2023  润新知