`
weigang.gao
  • 浏览: 485944 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

oracle分页查询(面试)

 
阅读更多

ROWNUM

rowid与rownum虽都被称为伪列,但它们的存在方式是不一样的:

rowid是物理存在的,表示记录在表空间中的唯一位置ID,在DB中是唯一的。只要记录没被搬动过,rowid是不变的。

rowid相对于表来说又像表中的一般列,所以,以rowid为条件就不会有rownum那么莫名其妙的结果出现。

rownum是真正的伪列,不管是数据库中物理表,还是嵌套子查询都会有rownum这个伪列,rownum总是从1开始的,第一条不满足去掉的话,第二条的rownum又成了1。

另外还要注意:rownum不能以任何基表的名称作为前缀

 

目前表中的数据如下:


 

 

1.分页查询格式1:

oracle嵌套子查询也具有伪列,可以使用别名来区别物理表和嵌套子查询语句的rownum


 

在查询的最外层控制分页的最小值和最大值。查询语句如下:

①首先获取伪列,并取别名rn。注意:伪列必须要有别名,因为嵌套子查询也有伪列rownum

select t.*, rownum rn from employee t

②使用rn进行分页查询

select t1.* from (select t.*, rownum rn from employee t) t1 where t1.rn > 10 and t1.rn < 20;

思考:这里为什么不能使用如下SQL语句来进行分页查询,查询结果是什么?

select t.*,rownum from employee t where rownum > 10 and rownum < 20;

解释:详情查考oracle中rownum为什么不能使用>符号来进行比较

 

2.分页查询格式2:

select t2.*
  from (select t1.*, rownum rn
          from (select * from employee where rownum < 20) t1) t2
 where rn > 10

 

3.分页查询格式3:

考虑到多表联合情况,如果不介意在系统中使用HINT的话,可以将分页查询语句改为:

select /*FIRST_ROWS*/ *
  from (select t1.*, rownum rn
          from (select * from employee where rownum < 20) t1) t2
 where rn > 10

解释:HINT

 

 

 

 

 

 

 

  • 大小: 14.4 KB
  • 大小: 9 KB
分享到:
评论

相关推荐

    oracle数据库开发面试必备

    7. **分页查询**:当处理大量数据时,分页查询是非常重要的。在Oracle中可以通过ROWNUM等方法来实现。 8. **删除记录**:在Oracle中,使用ROWID进行记录删除可以避免全表扫描,从而提高删除效率。例如: ```sql ...

    Oracle企业面试题集锦

    ### Oracle分页查询 - Oracle利用`ROWNUM`实现分页功能,如`SELECT * FROM (SELECT ROWNUM AS r, ... WHERE ROWNUM ) WHERE r &gt; 10`。 ### Oracle的大对象类型 - CLOB(Character Large Object):存储大量字符...

    oracle经典面试题oracle经典面试题oracle经典面试题

    ORACLE是ORACLE公司的数据产品,支持海量数据存储,支持分布式布暑,支持多用户,跨平台,数据安全完整性控制性能优越,是一个ORDBMS,一般用在大型公司。 2、能不能设计数据库?如何实现数据库导入与导出的更新 ...

    Oracle数据库基础面试题

    ### Oracle数据库基础面试题知识点详解 #### 一、Oracle数据库概述 **知识点1:Oracle数据库的概念** - **定义**:Oracle数据库是由Oracle公司开发的一种基于网络访问的关系型数据库管理系统,支持跨平台运行,具备...

    详解SQLServer和Oracle的分页查询

    不管是DRP中的分页查询代码的实现还是面试题中看到的关于分页查询的考察,都给我一个提示:分页查询是重要的。当数据量大的时候是必须考虑的。之前一直没有花时间停下来好好总结这里。现在又将Oracle视频中关于分页...

    oracle面试题

    以上就是关于Oracle中`RowID`、`RowNum`的使用方法,以及Oracle分页语句和存储过程的创建与使用的详细介绍。这些知识点对于Oracle开发人员来说非常重要,熟练掌握它们能够帮助你在实际工作中更高效地解决问题。

    ORACLE 面试题集锦

    在ORACLE面试中,面试官通常会从多个角度考察候选人的技能和知识,包括但不限于基础知识、SQL查询能力、数据库管理、性能优化以及问题解决能力。以下是一些重要的ORACLE面试知识点: 1. **Oracle基础知识**: - ...

    Java面试题28.mysql和oracle的分页语句(着重说思路).mp4

    Java面试题28.mysql和oracle的分页语句(着重说思路).mp4

    oracle数据库开发面试题.docx

    Oracle 数据库开发面试题 本文档主要讨论 Oracle 数据库开发面试题,涵盖了数据库开发的各个方面,包括数据库设计、SQL 语句编写、数据库优化、事务处理、触发器、树控制等。 一、数据库设计 * Oracle 数据库系统...

    整理mysql、oracle数据库相关 笔试面试题,主要为了应对面试过程中遇到的sql题目

    总结来说,MySQL和Oracle数据库的SQL面试题通常涵盖查询、数据操作、数据库设计、性能优化等多个层面。熟练掌握并能够灵活运用这些知识,将极大地提升你在面试中的竞争力。不断实践和学习,将使你在IT职场上更上一层...

    Oracle常见面试题

    ### Oracle常见面试题详解 #### 一、Oracle与SQL Server 2005对比 **Oracle** 是由Oracle...以上这些知识点涵盖了Oracle数据库的基本概念、查询技巧、性能优化等多个方面,对于准备Oracle相关面试的人来说非常有用。

    持续更新, 整理mysql、oracle数据库相关 笔试面试题,主要为了应对面试过程中遇到的sql题目

    5. **分页查询(LIMIT & OFFSET)**:在MySQL中,使用LIMIT和OFFSET获取结果集的一部分;在Oracle中,使用ROWNUM或FETCH FIRST子句实现相同功能。 6. **DML操作(INSERT、UPDATE、DELETE)**:理解如何向表中插入新...

    oracle相关面试问题.docx

    **四、Oracle分页** Oracle通过`rownum`伪列进行分页,示例查询: ```sql SELECT * FROM ( SELECT rownum r, a FROM tabName WHERE rownum ) WHERE r &gt; 10 ``` 此方法适用于效率较高的分页处理。 **五、...

    oracle常见面试题.docx

    【Oracle常见面试题详解】 1. 数据库对比:SQL2005是微软的...以上是对Oracle常见面试题的详细解析,涵盖了数据库基础、设计、查询、优化等多个方面。理解并掌握这些知识点对于Oracle数据库的管理和开发至关重要。

    Oracle常见面试题.pdf

    Oracle常见面试题 本资源摘要信息将对 Oracle 常见面试题进行详细的知识点解释。 1. 对数据库SQL2005、ORACLE 熟悉吗? * SQL2005 是微软公司的数据库产品,一个 RDBMS 数据库,应用于中型数据库,不能跨平台。 *...

    Oracle常见面试

    5. **分页查询**:在SQL Server中,可使用`TOP`;在Oracle中,可用`ROWNUM`或`ROW_NUMBER()`分析函数。存储过程实现分页需封装在包中,利用动态游标返回数据。 6. **连接操作**:左连接(LEFT JOIN)保留左表所有...

    Oracle常见面试题.doc

    - 示例:在Oracle中,可以使用子查询和ROW_NUMBER()实现分页。 6. **连接操作**: - 左连接(LEFT JOIN):返回左表的所有记录和右表匹配的记录。 - 右连接(RIGHT JOIN):返回右表的所有记录和左表匹配的记录...

    oracle面试题(网摘).doc

    12. **分页查询**:可以通过子查询配合`ROWNUM`来实现分页,或者使用`OFFSET/FETCH`语法(Oracle 12c及以后版本)。 **数据库基本概念类**: 1. **PCTUSED和PCTFREE**:PCTUSED定义了数据块何时返回空闲列表,...

    Oracle面试题.docx

    在Oracle面试中,了解和掌握Oracle的相关知识是至关重要的。以下是一些Oracle的关键概念和技术: 1. **超级用户与普通用户**: - **超级用户**,通常指`sys`用户,拥有最高的系统权限,可以进行数据库的安装、配置...

Global site tag (gtag.js) - Google Analytics