分页查询limit

语法:select * from stus limit (pageNum-1)*pageSize, pageSize;
当数据表中的数据记录比较多,向用户展示查询结果体谅比较大的时候,用户对数据查看的体验性就比较差;我们可以将查询结果进行分页,提供给用户查看,应用场景就是淘宝、京东展示产品用到的,在很多场景都用得到,就是将数据结果每次只展示一部分,然后分成好几页
目前我们有12条记录,现在方便演示,对stus表进行分页显示,每页显示3条
总记录数:count:12
每页显示:pageSize:3
总页数:pageCount = count%pageSize == 0?count/pageSize:count/pageSize + 1

  • 查询第一页: 语句:select * from stus limit 0,3;意思是:从stus表中查询数据,limit意思是对stus表进行筛选,后面的参数意思是,从stus表的第0条记录开始,查3条数据(注意:记录的索引时从0开始的)

presto 分页查 分页查询page和size_presto 分页查

  • 查询第二页的数据: 语句:select * from stus limit 3,3;意思是:从stus表中查询数据,limit意思是对stus表进行筛选,后面的参数意思是,从stus表的第3条记录开始,查3条数据

presto 分页查 分页查询page和size_分组查询_02

limit关键字使用在语句最后,也就是select、from、where、like等等之后
“limit param1,param2”
param1是int类型,代表每页第一条数据的索引值
param2是int类型,代表每页获取的记录数量,如果剩余的是记录数<param2,那么就返回剩余的所有数据

分组查询

意思就是,可以将记录按照某种规则进行分组,这个规则可以是依据字段;比如,可以依据gender性别字段来分组可以分为男女两组,同理,还可以按照年龄分组等等

语法:select ... from stus group by gender;如,显示那女分组,select * from stus group by gender;

presto 分页查 分页查询page和size_presto 分页查_03

由于版本问题,上述语句中的字符*最好替换为指定字段,这样查询结果就是只显示组别,这是与mysql5.7之前版本的不同,总而言之就是依据什么分组就要填写那个字段

语句select gender from stus group by gender;

presto 分页查 分页查询page和size_presto 分页查_04

  • 应用场景:
  • 比如需要将记录分为男女两组,并且需要计算每组的人数,可以通过分组查询与复合函数相结合的语句来实现:select gender, count(num) from stus group by gender;

presto 分页查 分页查询page和size_分组查询_05

  • 还可以计算分组后的平均年龄,select gender, avg(age)

presto 分页查 分页查询page和size_presto 分页查_06

  • having条件筛选,在最后执行,按照年龄进行分组,并统计每组的人数,最后将人数大于1的组显示出来select age, count(num) from stus group by age having count(num)>1 order by age;
  • 在复合语句中各个关键词有优先级
  • 1.where条件查询
    2.group by分组查询
    3.having数据筛选
    注意:没有group by是绝对不能有having的
  • 先查询性别为男的学生,按照年龄分组,分组之后显示出改组人数大于1的记录

presto 分页查 分页查询page和size_字段_07



  • order by是放在语句最后的