mysql和oracle分页注意点
来源:互联网 发布:小视频修改软件 编辑:程序博客网 时间:2024/06/05 04:26
这里首先说下oracle分页不像mysql分页那么简单直接limit 就可以了.
mysql:sql ="select * from talbe limit 0,10";
第一个数表示下标,就是从第几条数据开始,
第二个数表示每页显示多少条数据,可以说是当你确定每页显示多少行时候,它就是一个固定的数。
这里需要注意的是,mysql的访问下标是从0开始的。这个一定要记住。
下面说说oracle,oracle的分页就比较麻烦些了.
oracle是没有id自增长的,我们要首先要对我们自己在表自建的id创建个序列
select * from table(Book) order by B_id //第一步什么呢?
我oracle表中的B_id先
按照arder by 排序下,就是在oracle中是没有id自增长的,中间容易出现断层
第二步
我们把上面的第一个的语句作为一个条件用括弧括起来,那么第一个sql语句相当于一个视图,我们为了方便,在给他一个别名。m就是这个视图的别名,
这里我们知道oracle里面排序时通过“rownum”的关键字,我们也给他起个别名叫rn,就是后面伪列的名字;
这样我们执行下面的语句,会产生一个伪列,rn,当然一个伪列和B_id是不一样的
B_id会出现裂缝,断层,但是这个伪列是不会的。即便B_id中间断层,rn这个伪列永远
是按照1,2,3,...10....排序的,而且是自增长的。
其实在oracle里面进行真分页,oracle就是按照伪列实现的。
select m.*,ROWNUM rn from (select * from table(Book) order by B_id ) m
第三步
我们要做的还是和第二步的差不多,我们还是要把刚才的语句作为一个条件,用括弧
括起来,后面加where条件 between and 伪列从那到那,这个主要对rn伪列的操作。
这里和mysql区别是有点大的。
select * from (select m.*,ROWNUM rn from (select * from table(Book) order by B_id ) m)rn where between 1 and 10;
当然写法很多不只一种
select * from (select m.*,ROWNUM rn from (select * from table(Book) order by B_id ) m where ROWNUM <=10)where rn>=1 ;
后面的算法要高些。
个人笔记不断改善....谢谢
- mysql和oracle分页注意点
- Oracle实现分页的注意点
- MySql分页和Oracle分页
- oracle分页和mysql分页
- Oracle 和 MySQL 分页
- Mysql和Oracle分页
- mysql到oracle复制的注意点
- 数据库分页注意点
- MySQL分页SQL和ORACLE分页SQL
- 数据库分页,Oracle 和 mysql
- mysql和oracle的分页
- mysql 和oracle分页查询
- Oracle和MySQL分页语句
- mysql和oracle的分页
- DataGrid同时具有分页和排序功能及注意点
- Oracle迁移到MySQL性能下降的注意点
- Oracle中的注意点
- Oracle新手注意点
- LPTSTR、LPCSTR、LPCTSTR、LPSTR的概念
- 用PS切片工具分割图片(切片的使用)
- 工具箱
- ASPxGridView之PreviewRow girdview列文字大长度解决
- reactos操作系统实现(184)
- mysql和oracle分页注意点
- YUI 3.0.0 -- YUI 新一代代码结构
- FastReport 打印和导出 Excel、Word 等
- 使用wxwidgets的总结
- 四图切换
- ASP.NET中用户控件和页面的区别
- 进行网页设计开发的一些资源
- ASP.NET 获取服务器信息
- 关于电力方面的一些问答