排序
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;"返回的结果相同。