MySQL基础-排序与分页

目录

1.  排序

1.1 语法

1.2 单列排序

1.2.1 升序排序

1.2.2 降序排序

1.2 二级排序(多列排序)

2. 分页

2.1 背景

2.2 实现规则

2.2.1分页原理

2.2.2 语法

2.2.3综合练习:

2.3 使用 LIMIT 的好处


1.  排序

我们知道从 MySQL 表中使用 SQL SELECT 语句来读取数据。

如果我们需要对读取的数据进行排序,我们就可以使用 MySQL 的 ORDER BY 子句来设定你想按哪个字段哪种方式来进行排序,再返回搜索结果。

1.1 语法

以下是 SQL SELECT 语句使用 ORDER BY 子句将查询数据排序后再返回数据:

SELECT field1, field2,...fieldN 
FROM table_name1, table_name2...
ORDER BY field1 [ASC [DESC][默认 ASC]], [field2...] [ASC [DESC][默认 ASC]]
  • 你可以使用任何字段来作为排序的条件,从而返回排序后的查询结果。

  • 你可以设定多个字段来排序。

  • 你可以使用 ASC 或 DESC 关键字来设置查询结果是按升序或降序排列。 默认情况下,它是按升序排列。

  • 你可以添加 WHERE...LIKE 子句来设置条件。

    1.2 单列排序

    1.2.1 升序排序

    SELECT employee_id,last_name,salary
    FROM employees
    ORDER BY salary ASC;

1.2.2 降序排序

SELECT employee_id,last_name,salary
FROM employees
ORDER BY salary DESC;

1.2 二级排序(多列排序)

显示员工信息按照department_id降序排序,在按照salary升序排序

SELECT last_name,salary,department_id
FROM employees
ORDER BY department_id DESC,salary ASC;

根据结果可以看出来,按照department_id降序排列的同时,相同的department_id又按照salary升序排列。

2. 分页

2.1 背景

背景1:查询返回的记录太多了,查看起来很不方便,怎么样能够实现分页查询呢?

背景2:表里有 4 条数据,我们只想要显示第 2、3 条数据怎么办呢?

2.2 实现规则

2.2.1分页原理

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

MySQL中使用** LIMIT **实现分页

2.2.2 语法

LIMIT [位置偏移量],[条目数]

第一个“位置偏移量”参数指示MySQL从哪一行开始显示,是一个可选参数,如果不指定“位置偏移

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

举例:

#每页10条 显示第一页
SELECT employee_id,last_name
FROM employees
LIMIT 0,10;

  

#每页10条 显示第二页
SELECT employee_id,last_name 
FROM employees 
LIMIT 10, 10 ;

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

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

每页显示 pagesize条记录, 此时显示pageNo页

LIMIT (pageNo-1) * pagesize,pagesize;

SELECT * FROM table
LIMIT (PageNo - 1)*PageSize,PageSize;

注意:**LIMIT** 子句必须放在整个**SELECT语句的最后!**

2.2.3综合练习:

SELECT employee_id,last_name,salary
FROM employees
WHERE salary>6000
ORDER BY salary DESC
LIMIT 0,10;

2.3 使用 LIMIT 的好处

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值