前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >数据库——排序与分页

数据库——排序与分页

作者头像
小点点
发布2023-01-13 13:24:34
4680
发布2023-01-13 13:24:34
举报
文章被收录于专栏:小点点小点点

目录

排序数据

单列排序

多列排列

分页 

 分页原理

优点

 MySQL 8.0新特性

排序数据

  • 使用 ORDER BY 子句排序
  • ASC(ascend): 升序
  • DESC(descend):降序
  • ORDER BY 子句在SELECT语句的结尾。

单列排序

代码语言:javascript
复制
SELECT employee_id,last_name, salary
FROM employees
ORDER BY salary DESC;    # 降序排列
# ORDER BY salary ASC;     # 升序排列,结果差不多,就不展示了,默认升序排列

运行结果如下所示:

        还可以使用列的别名来排序,具体如下所示:

代码语言:javascript
复制
SELECT employee_id,last_name, salary * 12 AS annual_sal
FROM employees
ORDER BY annual_sal;    # 利用别名来排序

运行结果如下所示:

        注:只能在ORDER BY中使用,不能在WHERE中使用,而且WHERE语句一定要在ORDER BY之前。

        原因:先执行SELECT语句以及ORDER BY语句之间的语句,再执行SELECT语句,最后执行ORDER BY语句

代码语言:javascript
复制
SELECT employee_id,last_name, salary
FROM employees
WHERE department_id IN (10,20)    # 部门为10,20的人,工资按升序排列
ORDER BY salary;

 运行结果如下所示:


多列排列

代码语言:javascript
复制
SELECT employee_id,last_name, salary
FROM employees
ORDER BY salary DESC, employee_id;    # salary降序,employee_id 升序

  运行结果如下所示:

分页 

 分页原理

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

优点

        约束返回结果的数量可以 减少数据表的网络传输量 ,也可以 提升查询效率 。如果我们知道返回结果只有 1 条,就可以使用 LIMIT 1 ,告诉 SELECT 语句只需要返回一条记录即可。这样的好处就是 SELECT 不需 要扫描完整的表,只需要检索到一条符合条件的记录即可返回。

MySQL中使用 LIMIT 实现分页

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

        第一个“位置偏移量”参数指示MySQL从哪一行开始显示,是一个可选参数,如果不指定“位置偏移 量”,将会从表中的第一条记录开始(第一条记录的位置偏移量是0,第二条记录的位置偏移量是 1,以此类推);第二个参数“行数”指示返回的记录条数。

代码语言:javascript
复制
SELECT employee_id,last_name, salary
FROM employees
LIMIT 0,2;    # 偏移量为0,显示两条数据

运行结果如下所示:

分页显式公式:(当前页数-1)*每页条数,每页条数

代码语言:javascript
复制
SELECT employee_id,last_name, salary
FROM employees
LIMIT 2,2;    # 第二页

运行结果如下所示:

声明顺序

注:LIMIT 子句必须放在整个SELECT语句的最后,如下所示! 

代码语言:javascript
复制
SELECT employee_id,last_name, salary
FROM employees
WHERE salary > 6000
ORDER BY salary DESC
LIMIT 0,10;

运行结果如下所示:

 MySQL 8.0新特性

        MySQL 8.0中可以使用“LIMIT 3 OFFSET 4”,意思是获取从第5条记录开始后面的3条记录,和“LIMIT 4,3;”返回的结果相同,具体如下所示。

代码语言:javascript
复制
SELECT employee_id,last_name, salary
FROM employees
WHERE salary > 6000
ORDER BY salary DESC
LIMIT 10 OFFSET 0;
# 与上图结果一致
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-01-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 排序数据
    • 单列排序
      • 多列排列
      • 分页 
        •  分页原理
          • 优点
        •  MySQL 8.0新特性
        相关产品与服务
        云数据库 SQL Server
        腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档