在一个页面中经常会出现分页的现象,那么后台数据库又应该如何分页显示呢?
分页可以使用oracle中的rownum函数。
一个页面中从第几行到第几行数据的显示。
下面以scott用户下的emp表说明:
语句一:
select b.*
from(
select a.* ,rownum row_num
from (select * from emp ) a) b
where row_num between 3 and 5;
语句二:
select b.*
from(
select a.* ,rownum row_num
from (select * from emp ) a
where rownum<6) b
where row_num>2;
语句一和语句二有相同的功能,都可以将emp表中的第三行到第五行的数据显示出来,但是当数据库中的数据量很大时,语句二明显比语句一更优化。
在oracle中sql语句的执行是从内到外执行的,语句二中先将rownum<6的数据放入到b表中,再从b表中查询出rownum>2的数据,效率更高于语句一。