MySQL 第十一章 limit(★★★★★)

十一、limit(★★★★★)

11.1 limit的作用

将查询结果集的一部分取出来。通常使用在分页查询当中。

示例:
百度默认—>一页只显示10条记录。

分页的作用是为了提高用户的体验,因为一次全部都查出来用户体验感会差,可以一页一页翻着看。

11.2 limit怎么用

# 完整用法
limit startIndex, length
# startIndex:起始下标,length:长度
# 起始下标从0开始
# 缺省用法
limit 5;	# 取前5

注意:mysql中limit在order by之后执行!

11.3 案例

按照薪资降序,取出排名在前5名的员工?

# 法1
mysql> select ename, sal
    -> from emp
    -> order by sal desc
    -> limit 5;
+-------+---------+
| ename | sal     |
+-------+---------+
| KING  | 5000.00 |
| FORD  | 3000.00 |
| SCOTT | 3000.00 |
| JONES | 2975.00 |
| BLAKE | 2850.00 |
+-------+---------+
5 rows in set (0.00 sec)

# 法2
mysql> select ename, sal
    -> from emp
    -> order by sal desc
    -> limit 0, 5;
+-------+---------+
| ename | sal     |
+-------+---------+
| KING  | 5000.00 |
| FORD  | 3000.00 |
| SCOTT | 3000.00 |
| JONES | 2975.00 |
| BLAKE | 2850.00 |
+-------+---------+
5 rows in set (0.00 sec)

取出工资排名在[3-5]名的员工?

mysql> select ename, sal
    -> from emp
    -> order by sal desc
    -> limit 2, 3;	# 注意,这里是2,3。
+-------+---------+
| ename | sal     |
+-------+---------+
| SCOTT | 3000.00 |
| JONES | 2975.00 |
| BLAKE | 2850.00 |
+-------+---------+
3 rows in set (0.00 sec)
# 2表示起始位置从下标2开始,就是第三条记录
# 3表示长度

取出工资排名在[5-9]名的员工?

mysql> select ename,sal
    -> from emp
    -> order by sal desc
    -> limit 4, 5;
+--------+---------+
| ename  | sal     |
+--------+---------+
| BLAKE  | 2850.00 |
| CLARK  | 2450.00 |
| ALLEN  | 1600.00 |
| TURNER | 1500.00 |
| MILLER | 1300.00 |
+--------+---------+
5 rows in set (0.00 sec)

11.4 分页

如,每页显示3条记录

1页:limit 0,3		[0 1 2]2页:limit 3,3		[3 4 5]3页:limit 6,3		[6 7 8]4页:limit 9,3		[9 10 11]

公式:

#每页显示pageSize条记录:
第pageNo页:limit(pageNo - 1)*pageSize, pageSize

Java代码:

public static void main(String[] args){
    
    
	// 用户提交过来一个页码,以及每页显示的记录条数
	int pageNo = 5; //第5页
	int pageSize = 10; //每页显示10条

	int startIndex = (pageNo - 1) * pageSize;
	String sql = "select ...limit " + startIndex + ", " + pageSize;
}

11.5 DQL语句大总结:

select ...
from ...
where ...
group by ...
having ...
order by ...
limit ...

# 执行顺序:
1. from
2. where
3. group by
4. having
5. select
6. order by
7. limit ...

Guess you like

Origin blog.csdn.net/qq_45893475/article/details/121312455