聚合

  • 为了快速得到统计数据,提供了5个聚合函数
  • count(*)表示计算总行数,括号中写星与列名,结果是相同的
  • 查询学生总数
select count(*) from students;

  

  • max(列)表示求此列的最大值
  • 查询女生的编号最大值
select max(id) from students where gender=0;

  

  • min(列)表示求此列的最小值
  • 查询未删除的学生最小编号
select min(id) from students where isdelete=;
  • sum(列)表示求此列的和
  • 查询男生的编号之后
select sum(id) from students where gender=1;

  

  • avg(列)表示求此列的平均值
  • 查询未删除女生的编号平均值
select sum(id) from students where gender=1;

  

分组

  • 按照字段分组,表示此字段相同的数据会被放到一个组中
  • 分组后,只能查询出相同的数据列,对于有差异的数据列无法出现在结果集中
  • 可以对分组后的数据进行统计,做聚合运算
  • 语法
select 列1,列2,聚合... from 表名 group by 列1,列2,列3....
  •   查询男女总数
select gender as 性别,count(*)

from students

group by gender;

分组后的数据筛选

  • 语法:
select 列1,列2,聚合... from 表名
group by 列1,列2,列3....
having 列1,列2,聚合...
having后面的条件运算符与where的相同
  • 查询男生总人数
方案一select count(*)
from students
where gender=1;
-----------------------------
方案二:
select gender as 性别,count(*)
from students
group by gender
having gender=1;

  对比where 与 having

  •  where是对from后面指定的表进行数据筛选,属于对原始数据的筛选
  •  having是对group by的结果进行数据筛选

排序

  • 为了方便查看数据,可以对数据进行排序
  • 语法:
select * from 表名
order by 列1 asc|desc,列2 asc|desc,...

  

  • 将行数据按照列1进行排序,如果某些行列1的值相同时,则按照列2排序,以此类推
  • 默认按照列值从小到大排列
  • asc从小到大排列,即升序
  • desc从大到小排序,即降序
  • 查询未删除男生学生信息,按学号降序
select * from students
where gender=1 and isdelete=0
order by id desc;

  

  • 查询未删除科目信息,按名称升序
select * from subject
where isdelete=0
order by stitle;

  

获取部分行

  • 当数据量过大时,分页查询
  • 语法
select * from 表名

limit start,count

  

  • 从start开始,获取count条数据
  • start索引从0开始

实例:分页

  • 已知:每页显示m条数据,当前显示第n页
  • 求总页数
  • 查询总条数p1
  • 使用p1除以m得到p2
  • 如果整除则p2未总数页
  • 如果不整除则p2+1为总数页
  • 求第n页的数据
select * from students

where isdelete=0

limit (n-1)*m,m

  

  • 完整的select语句
select distinct *
from 表名
where ....
group by ... having ...
order by ...
limit star,count

  

  • 执行顺序为:
  • from 表名
    where ....
    group by ...
    select distinct *
    having ...
    order by ...
    limit star,count
  • 实际使用中,只是语句中某些部分的组合,而不是全部

MySQL数据库基本用法-聚合-分组的更多相关文章

  1. mysql数据库查询和聚合函数

    1.模糊查询 like % 表示多个任意字符 _ 表示任意一个字符 例如:查询黄姓同学 select * from student where name '黄%' select * from stud ...

  2. [MySQL]MySQL数据库中如何查询分组后每组中的最后一条记录?

    原文地址:https://codedefault.com/s/how-can-i-retrieve-the-last-record-in-each-group-mysql 问题描述 比如,在MySQL ...

  3. MySql 筛选条件、聚合分组、连接查询

    筛选条件 比较运算符 等于: = ( 注意!不是 == ) 不等于: != 或 <> 大于: > 大于等于: >= 小于: < 小于等于: <= IS NULL I ...

  4. MySQL数据库基本用法

    远程连接数据库 mysql -u root -p #-u 用户名 -h后面写要连接的主机ip地址 -u后面写连接的用户名 -p回车后写密码 回车后输入密码,当前设置的密码为toor 数据库操作 创建数 ...

  5. MySQL数据库基本用法-查询

    查询的基本语法 select * from 表名; from关键字后面写表名,表示数据来源于是这张表 select后面写表中的列名,如果是*表示在结果中显示表中所有列 在select后面的列名部分,可 ...

  6. mysql数据库优化课程---10、mysql数据库分组聚合

    mysql数据库优化课程---10.mysql数据库分组聚合 一.总结 一句话总结:select concat(class,' 班') 班级,concat(count(*),' 人') 人数 from ...

  7. MySQL数据库聚合函数

    +++++++++++++++++++++++++++++++++++++++++++标题:MySQL数据库聚合函数时间:2019年2月25日内容:MySQL数据库聚合函数重点:MySQL数据库聚合函 ...

  8. MySQL数据库备份--mysqldump用法

    导出要用到MySQL的mysqldump工具,基本用法是:   shell> mysqldump [OPTIONS] database [tables] 如果你不给定任何表,整个数据库将被导出. ...

  9. MySQL数据库INSERT、UPDATE、DELETE以及REPLACE语句的用法详解

    本篇文章是对MySQL数据库INSERT.UPDATE.DELETE以及REPLACE语句的用法进行了详细的分析介绍,需要的朋友参考下   MySQL数据库insert和update语句引:用于操作数 ...

随机推荐

  1. Flex布局新旧混合写法详解

    flex是个非常好用的属性,如果说有什么可以完全代替 float 和 position ,那么肯定是非它莫属了(虽然现在还有很多不支持 flex 的浏览器).然而国内很多浏览器对 Flex 的支持都不 ...

  2. linux之xxx 不在 sudoers 文件中,此事将被报告(转载)

    linux中创建用户命令为:useradd 用户名, eg: useradd test 指定密码:passwd test 但是有时候我们需要使用test运行执行一些root用户才有权限执行的命令,此时 ...

  3. gnuradio 使用eclipse 编辑器记录

    第1步 - 首先安装eclipse 先去官网下载,然后解压  --->下载版本是C++/C 版---->解压--->打开--->help->eclipse marketp ...

  4. cf1144G 将串分解成单调递增和递减子串(贪心)

    这算哪门子dp.. 具体做法就是贪心,建立两个vector存递增序列递减序列,操作过程中a可以合法地匀一个给b 就是判断第i个数放在递增序列里还是放在递减序列里,需要根据后面的数来进行决策 #incl ...

  5. python字典操作用法总结

    基本语法: dict = {'ob1':'computer', 'ob2':'mouse', 'ob3':'printer'} 技巧: 字典中包含列表:dict={'yangrong':['23',' ...

  6. 关于C++ const 的全面总结 (转)

    C++中的const关键字的用法非常灵活,而使用const将大大改善程序的健壮性,本人根据各方面查到的资料进行总结如下,期望对朋友们有所帮助. Const 是C++中常用的类型修饰符,常类型是指使用类 ...

  7. spring coud Feign常用配置

    Ribbon配置 在Feign中配置Ribbon非常简单,直接在application.properties中配置即可,如: # 设置连接超时时间 ribbon.ConnectTimeout=500 ...

  8. python 垃圾回收

    # 垃圾回收 # 小整数对象池 # a = 100# python对小整数的定义是[-5,257],这些证书对象是提前创建好的,不会被垃圾回收,再一个python的程序中,所有位于这个范围内的正式使用 ...

  9. Hyper-V 替换 vmwp

    要激活 Hyper-V 下的虚机 最简单的方法是用带证书的vmwp替换掉原来的 带证书的vmwp参见:http://bbs.pcbeta.com/viewthread-1408240-1-1.html ...

  10. php处理IOS图片旋转

    $picAddr = $url; $exif = exif_read_data($picAddr); $image = imagecreatefromjpeg($picAddr); if($exif[ ...