首页 数据库 mysql教程 Oracle数据库分页

Oracle数据库分页

Jun 07, 2016 pm 05:06 PM
oracle数据库

之前没有接触过oracle数据库,一直使用的都是MSSQL,说起这两种数据库的SQL语句,有很多地方都是不一样的,具体的我也说不清促,

之前没有接触过Oracle数据库,一直使用的都是MSSQL,说起这两种数据库的SQL语句,有很多地方都是不一样的,具体的我也说不清促,大牛些比我更加清楚的。这里我只是想写一下关于在Oracle内如何实现分页的语句,便于后期自己查看。

开始在接触到项目的时候,已经有同事做了页面数据绑定的工作,当时是每刷新页面的时候将数据库对应表内记录全部查询出来,然后通过PageSize来和当前页来截取数据,绑定到页面上。我看后觉得这样效率太低了,数据量小的情况还是可以,但是一旦数据量上了十万、百万的,那样读取数据将会很慢。后来我果断采用了数据库分页的形式,有一点觉得oracle很不错的地方就是其内有着Rownum属性,嘿嘿,这下可好了,避免了再次构造rownum的麻烦。

由于对oracle内的rownum不熟悉,前期搞了几个笑话。我的想法如下:

select  *  from  tablename where rownum = 1;  //能够正确读取数据

select  *  from tablename where rownum = 10; //获取不到任何数据,但是也不报错

后来就开始查找关于oracle内rownum属性的相关资料,哎,原来rownum在插入记录的时候就已经分配好了,而且对于没有指定别名的情况下其索引值每次都得从1开始。 所以上面第二种情况下是获取不到数据的。我们在写SQL的时候避免不了有排序的要求,排序后如何能够保证rownum也是递增顺序呢?

select * from tablename where rownum = 1 order by  ordername desc; //这样获取出来的rownum将不会连贯,后来查阅和尝试可以在排序字段内加入表的主键,,那么就会先排序,然后在在递增方式赋予rownum。

重点说说分页的SQL如下:

select * from (select rownum r ,t1.* from tablename t1 where rownum

where r > StartRownum;

我也看到很多这样的SQL语句:

select * from (select rownum r,t1.* from tablename t1)

where r StartRownum;

我不得不说这种SQL的执行效率会很低的,内部SQL还是全表过滤了一遍的,太多就不说了。

linux

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

<🎜>:泡泡胶模拟器无穷大 - 如何获取和使用皇家钥匙
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系统,解释
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆树的耳语 - 如何解锁抓钩
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

热门话题

Java教程
1670
14
CakePHP 教程
1428
52
Laravel 教程
1329
25
PHP教程
1273
29
C# 教程
1256
24
oracle怎么查看表属于哪个表空间 oracle怎么查看表属于哪个表空间 Jul 06, 2023 pm 01:31 PM

oracle查看表属于哪个表空间的方法:1、使用“SELECT”语句,并通过指定表名来查找指定表所属的表空间;2、使用Oracle提供的数据库管理工具来查看表所属的表空间,这些工具通常提供了图形界面,使得操作更加直观和方便;3、在SQL*Plus中,可以通过输入“DESCRIBEyour_table_name;”命令来查看表所属的表空间。

如何使用PDO连接到Oracle数据库 如何使用PDO连接到Oracle数据库 Jul 28, 2023 pm 12:48 PM

如何使用PDO连接到Oracle数据库概述:PDO(PHPDataObjects)是PHP中一个操作数据库的扩展库,它提供了一个统一的API来访问多种类型的数据库。在本文中,我们将讨论如何使用PDO连接到Oracle数据库,并执行一些常见的数据库操作。步骤:安装Oracle数据库驱动扩展在使用PDO连接Oracle数据库之前,我们需要安装相应的Oracl

oracle如何只取一条重复的数据 oracle如何只取一条重复的数据 Jul 06, 2023 am 11:45 AM

oracle只取一条重复的数据的步骤:1、使用SELECT语句结合GROUP BY和HAVING子句来查找重复数据;2、使用ROWID删除重复数据,可以确保删除的是精确的重复数据记录,或者使用“ROW_NUMBER()”函数删除重复数据,这将删除每组重复数据中的除了第一条记录之外的其他记录;3、使用“select count(*) from”语句返回删除记录数确保结果。

如何使用php扩展PDO连接Oracle数据库 如何使用php扩展PDO连接Oracle数据库 Jul 29, 2023 pm 07:21 PM

如何使用PHP扩展PDO连接Oracle数据库导语:PHP是一种非常流行的服务器端编程语言,而Oracle是一款常用的关系型数据库管理系统。本文将介绍如何使用PHP扩展PDO(PHPDataObjects)来连接Oracle数据库。一、安装PDO_OCI扩展要连接Oracle数据库,首先需要安装PDO_OCI扩展。以下是安装PDO_OCI扩展的步骤:确保

实现PHP和Oracle数据库的数据导入 实现PHP和Oracle数据库的数据导入 Jul 12, 2023 pm 06:46 PM

实现PHP和Oracle数据库的数据导入在Web开发中,使用PHP作为服务器端脚本语言可以方便地操作数据库。Oracle数据库作为一种常见的关系型数据库管理系统,具备强大的数据存储和处理能力。本文将介绍如何使用PHP将数据导入到Oracle数据库中,并给出相应的代码示例。首先,我们需要确保已经安装了PHP和Oracle数据库,并且已经配置好了PHP对Orac

oracle如何查询表空间大小 oracle如何查询表空间大小 Jul 06, 2023 pm 01:45 PM

oracle查询表空间大小步骤:1、使用数据库管理员账号登录到Oracle数据库;2、使用“SELECT”语句来查看空间列表;3、查询表空间大小有3种方法:使用dbms_utility包查询、使用dba_segments视图查询、使用dba_data_files视图查询;4、使用“DBMS_OUTPUT.PUT_LINE”函数或者其他显示结果的方法来显示查询结果。

oracle数据库需要jdk吗 oracle数据库需要jdk吗 Jun 05, 2023 pm 05:06 PM

oracle数据库需要jdk,其原因是:1、当使用特定的软件或功能时需要包含在JDK中的其他软件或库;2、需要安装Java JDK才能在Oracle数据库中运行Java程序;3、JDK提供了开发和编译Java应用程序的功能;4、满足Oracle对Java函数的要求,以帮助实现和实现特定功能。

如何高效地使用PHP和Oracle数据库的连接池 如何高效地使用PHP和Oracle数据库的连接池 Jul 12, 2023 am 10:07 AM

如何高效地使用PHP和Oracle数据库的连接池引言:在开发PHP应用程序时,使用数据库是必不可少的一部分。而在与Oracle数据库交互时,连接池的使用对于提高应用程序的性能和效率至关重要。本文将介绍如何在PHP中高效地使用Oracle数据库连接池,并提供相应的代码示例。一、连接池的概念及优势连接池是一种管理数据库连接的技术,它通过事先创建一批连接并维护一个

See all articles