分享

Mysql和Oracle中的分页机制各是什么?

 梦想的图书馆1 2016-11-23

MySQLOracle的分页机制分别是什么呢?每次面试都会被问到,总结一下啊,分享一下啊!!!!



1.MySql中的limit关键字


以模糊查询为例子,limit写到where子句的后面


select * from user where name like '%mm%' limit startrow,readsize;


其中值得推敲的是startrow和readsize也就是开始和读取的记录数


这样查询出来的结果集是从startrow行,读取endsize条记录,实际上查询到的结果集是startrow+1到startrow+readsize的结果,这是操作中我们应该注意的,结果集不包括startrow.


2.Oracle中的rownum关键字


select name,email from (select rownum rn ,name ,email  from user  where rownum <endrow) t where t.rn>=sartrow


这样我们就可以得到startrow到endrow结果集,注意结果集合不包括endrow当前行记录,如果条件子句中不是>=startrow,那么查询到的结果集是也不包括startrow当前行记录。


Oracle中主要用到rownum这个伪字段,子查询得到的记录集包括了一个rownum字段,由于Oracle中rownum字段都是从1开始递增的,查询到几条记录就递增到几,所以我们应从后向前截取要查询的记录,并将rownum固定为结果集合的一个字段,然后再使用外层查询就可以以结果集的rownum固定住的字段来利用where子句来操纵记录了。

 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多