排序与分页

排序与分页:

   排序:

 #排序
#如果没有使用排序操作,默认情况下查询返回的数据是按照添加数据的顺序显示的

#例:按照salary从高到低的顺序显示
#使用 ORDER BY 对查询到的数据进行排序操作
#升序:ASC (ascend)
#降序:DESC(descend)
SELECT employee_id,last_name,salary
FROM employees
ORDER BY salary DESC; #如果在ORDER BY 后没有显示指明的排序的方式的话,则默认按照升序排列

#我们可以使用列的别名进行排序
#列的别名只能在order by 中使用,不能再where中使用
#强调格式:WHERE 需要声明在FROM后,ORDER BY之前
#代码不是顺序结构运行下来,是先运行from哪个表,在运行WHERE 过滤,然后运行SELECT,最后运行 ORDER BY


#二级排序
#例:显示员工信息,按照department_id的降序排列,salary的升序排列
SELECT employee_id,salary,department_id
FROM employees
ORDER BY department_id DESC,salary ASC;

   可以使用不在SELECT列表中的列排序。

   在对多列进行排序的时候,首先排序的第一列必须有相同的列值,才会对第二列进行排序。如果第

   一列数据中所有值都是唯一的,将不再对第二列进行排序。

 

  分页:

  格式:
      LIMIT [位置偏移量,] 行数

 分页原理:所谓分页显示,就是将数据库中的结果集,一段一段显示出来需要的条件。

#分页
#mysql 使用limit实现数据的分页显示

#需求1:每页显示20条记录,此时显示第1页
SELECT employee_id,last_name
FROM employees
LIMIT 0,20;
#需求2:每页显示20条记录,此时显示第2页
SELECT employee_id,last_name
FROM employees
LIMIT 20,20;
#需求3:每页显示20条记录,此时显示第3页
SELECT employee_id,last_name
FROM employees
LIMIT 40,20;

#需求:每页显示pageSize条记录,此时显示第pageNo页
#公式:LIMIT (pageNo-1)*pageSize,pageSize;
#LIMIT格式:严格说:LIMIT 位置偏移量,条目数

#WHERE ... ORDER BY ... LIMIT 声明的顺序:
 SELECT employee_id,last_name,salary
 FROM employees                      
 WHERE salary>6000
ORDER BY salary DESC
#LIMIT 0,10;
 LIMIT 10;

#例:表里有 4 条数据,只想要显示第 32、33 条数据
SELECT employee_id,last_name
FROM employees
 LIMIT 31,2;

#mysql 8.0 新特性:LIMIT ... OFFSET ...
#例:表里有 4 条数据,只想要显示第 32、33 条数据
SELECT employee_id,last_name
FROM employees
 LIMIT 2 OFFSET 31;

#练习:查询员工表中工资最高的员工信息
SELECT employee_id,last_name,salary
FROM employees
ORDER BY salary DESC
 LIMIT 0,1;

#LIMIT 不能使用在Oracle数据库中 oracle用的是rownum
 
posted @   zjw_rp  阅读(61)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
点击右上角即可分享
微信分享提示