【MySQL】排序和分页

排序

ORDER BY 多列 ;#强调格式:WHERE需要声明在FROM后,ORDER BY之前。先排序Country  再排序CustomerName ,默认是按ASC排序的。

SELECT * FROM Customers
ORDER BY Country ASC, CustomerName DESC;

我们可以使用列的别名,进行排序,列的别名只能在order by 中使用,不能在wHERE中使用。因为sql执行语句是 先from where 然后执行select 字段 别名,在执行oder by

SELECT employee_id,salary,salary * 12 annual_sal FROM employees
ORDERBY annual_sal;
#列的别名只能在 ORDER BY中使用,不能在WHERE中使用。#如下操作报错!
SELECT employee_id,salary,salary * 12 annual_salFROMemployees
wHEREannual_sal > 81600;

练习题

查询邮箱中包含e的员工信息,并先按邮箱的字节数降序,再按部门号升序

SELECT employee_id,last_name , email, department_id
FROM employees
#where email like '%e字'
WHEREemail REGEXP '[e] '
ORDER BY LENGTH (email)DEsC, department_id;

 

 

分页

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

格式(严格来):LIMIT位置偏移量,步长

结构:LIMIT 0,条目数”等价于"LIMIT 条目改"

注意: LIMIT可以使用在MySQL、PGSQL、MariaDB、sQLite等数据库中使用,表示分页。.不能使用在SQLServer、DB2、oracle !l

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

#需求2:每页显示20条记录,此时显示第2页
SELECT employee_id, last_name
FROMemployees
LIMIT 20,20;

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

#需求:每页显示pagesize条记录,此时显示第pageNo页:

公式:LIMIT (pageNo-1) * pagesize,pagesize;

SELECT employee_id, 1ast__name , salary FROM employees
WHERE salary > 6000 ORDER BY salary DESC
#limit 0,10;格式(严格来):LIMIT位置偏移量,步长
LIMIT 10; 结构:LIMIT 0,条目数”等价于"LIMIT 条目改"

mysql8.0 新特性

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

posted @ 2023-03-08 19:09  小林野夫  阅读(93)  评论(0编辑  收藏  举报
原文链接:https://www.cnblogs.com/cdaniu/