分组

  • 依照字段名分组,表明此字段名同样的数据会被放进一个组中
  • 分组后,只有查询出同样的数据列,针对有差别的数据列没法出現在結果集中化
  • 能够 对分组后的数据开展统计分析,做汇聚计算
  • 英语的语法:
select 列1,列2,汇聚... from 表名 group by 列1,列2,列3...
  • 查询男生和女生数量
select gender as 性別,count(*)
from students
group by gender;
  • 查询各大城市总数
select hometown as 故乡,count(*)
from students
group by hometown;

分组后的数据筛选

  • 英语的语法:
select 列1,列2,汇聚... from 表名
group by 列1,列2,列3...
having 列1,...汇聚...
  • 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页
  • 求总页码:此段逻辑性后边会在python中完成
    • 查询总总数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
  • 具体应用中,仅仅句子中一些一部分的组成,而不是所有