oracle4

分页查询
按雇员的id号升序取出
oracle的分页一共有三种方式 

1.根据rowid来分
  select * from t_xiaoxi where rowid in (select rid from (select rownum rn, rid from(select rowid rid, cid from t_xiaoxi order by cid desc) where rownum<10000) where rn>9980) order by cid desc;
执行时间0.03秒
2.按分析函数来分
  select * from (select t.*, row_number() over(order by cid desc) rk from t_xiaoxi t) where rk<10000 and rk>9980;
执行时间1.01秒
3.按rownum来分
  select * from (select t.*,rownum rn from(select * from t_xiaoxi order by cid desc)t where rownum<10000) where rn>9980;
执行时间0.1秒 

其中t_xiaoxi为表名称,cid为表的关键字段,取按cid降序排序后的第9981-9999条记录,t_xiaoxi表有70000多条记录。
个人感觉1的效率最好,3次之,2最差。 

//测试通过的分页查询okokok
select * from (select a1.*, rownum rn from(select ename,job from emp) a1 where rownum<=10)where rn>=5; 

下面最主要介绍第三种:按rownum来分
1. rownum 分页
   SELECT * FROM emp;   
 2. 显示rownum[oracle分配的]
SELECT e.*, ROWNUM rn FROM (SELECT * FROM emp) e;
(SELECT * FROM emp) e中的(SELECT * FROM emp) 当成内嵌视图,取了一个别名叫e,
e.*表示把后面子查询的信息在重新取出来,
 ROWNUM  rn相当于Oracle分配的每行的ID号
3.挑选出6—10条记录
先查出1-10条记录
SELECT e.*, ROWNUM rn FROM (SELECT * FROM emp) e WHERE ROWNUM <= 10;
如果后面加上rownum>=6是不行的,
4. 然后查出6-10条记录
SELECT * FROM (SELECT e.*, ROWNUM rn FROM (SELECT * FROM emp) e WHERE ROWNUM <= 10) WHERE rn >= 6;
5. 几个查询变化
a. 指定查询列,只需要修改最里层的子查询(SELECT * FROM emp)
只查询雇员的编号和工资
SELECT * FROM (SELECT e.*, ROWNUM rn FROM (SELECT ename, sal FROM emp) e WHERE ROWNUM <= 10) WHERE rn >= 6;
b. 排序查询,只需要修改最里层的子查询(SELECT * FROM emp)
工资排序后查询6-10条数据
SELECT * FROM (SELECT e.*, ROWNUM rn FROM (SELECT ename, sal FROM emp ORDER by sal) e WHERE ROWNUM <= 10) WHERE rn >= 6; 
时间: 2024-12-10 20:44:57

oracle4的相关文章

Oracle-4 - :超级适合初学者的入门级笔记:plsql,基本语法,记录类型,循环,游标,异常处理,存储过程,存储函数,触发器

初学者可以从查询到现在的pl/sql的内容都可以在我这里的笔记中找到,希望能帮到大家,视频资源在 资源, 我自己的全套笔记在  笔记 在pl/sql中可以继续使用的sql关键字有:update delete insert select--into commit  rollback savepoint   ,在这里需要注意的是查询跟以前有些不一样了 plsql由三个块组成:声明部分,执行部分,异常处理部分 declare:在此声明pl/sql用到的变量,类型及游标,以及局部的存储过程的和函数 be

Atitit.常用分区api的attilax总结

1. Api 来源与oracle与mysql1 1.1. 分区定义partition by range (uid)  使用VALUES LESS THAN操作符来进行定1 1.1.1. mysql1 1.1.2. Oracle分区定义partition by range (uid)  使用VALUES LESS THAN操作符来进行定2 1.2. 分区按照hash2 1.2.1. Oracle语法2 1.3.  列表分区: partition by list().3 1.4. 分区的修改和合并3

非常不错的ASP操作数据库类,支持多数据库MSSQL,ACCESS,ORACLE,MYSQL等

可同时操作多个不同类型的数据库. 完全不用考虑数据类型的差别,再也不用想字符型字段加不加单引号. 调用非常简单,对数据库的主要操作一般只需要一行代码. 支持mssql事务回滚. 可自动生成和输出sql语句方便调试. 使用方法: 1. 修改clsDbctrl.asp文件中的第1行为你自己的数据库位置(修改方法参考下面的CreatConn函数说明).如需连接多个数据库可自行添加,格式相同. 2. 在你新建的asp文件中包含此asp文件.如: <!--#include file="Inc/cls

尚学堂学习周期及相关视频简介

针对很多java爱好者对尚学堂视频课程不是十分了解,而且学习起来也没有正确的流程,因此造成学习周期过长,特此介绍一下视频课程学习内容及学习周期希望对大家有所帮助: 第一部分学习总周期26天: 1. ---j2se(chat + Tank + snake)---------------------------------------------13 days2. ---Oracle-----------------------------------------------------------

常见的数据库攻击方法

下面是六大数据库攻击: 1.强力(或非强力)破解弱口令或默认的用户名及口令 2.特权提升 3.利用未用的和不需要的数据库服务和和功能中的漏洞 4.针对未打补丁的数据库漏洞 5.SQL注入 6.窃取备份(未加密)的磁带 下面分别分析一下: 1.对弱口令或默认用户名/口令的破解 以前的Oracle数据库有一个默认的用户名:Scott及默认的口令:tiger;而微软的SQL Server的系统管理员账户的默认口令是也是众所周知. 当然这些默认的登录对于黑客来说尤其方便,借此他们可以轻松地进入数据库.

文件格式说明

电脑常用文件格式大全 文件格式, 电脑, Microsoft, ACL, Adobe A 对象代码库文件 AAM Authorware shocked文件3 }! H, l& {$ O' H5 T% L& W6 | AAS Authorware shocked包8 s& u1 ^' {6 v1 j1 N ABF Adobe二进制屏幕字体" k% _8 g/ V: `% z# z0 i+ W ABK CorelDRAW自动备份文件 ABS 该类文件有时用于指示一个摘要(就像

浅谈浏览器标准模式与怪异模式、文档类型

在网页设计制作过程中,新人往往会遇到一个问题,就是浏览器的不兼容问题.这种状况在大学学习过程中会经常遇到,但一直也没有得到很好的解决,今天有机会仔细研究了一下,这是有关浏览器标准模式与怪异模式之间的问题.标准模式(strict mode)和怪异模式(quirks mode)是浏览器解析css的两种模式.标准模式是指浏览器按W3C标准解析执行代码:怪异模式则是使用浏览器自己的方式解析执行代码,因为不同浏览器解析执行的方式不一样,所以我们称之为怪异模式. 浏览器解析时使用测是标准模式还是怪异模式,与

oracle学习入门系列之四 oracle数据库简介

oracle学习入门系列之四 oracle数据库简介 终于平滑过渡到oracle了,我们在第一篇中黑了拉里一次,这里就需要给拉里洗白了.话说当年钱钟书先生写完<围城>之后,无意中说,一个鸡蛋就算好吃,也没必要知道下蛋的母鸡是哪只.蛤蟆觉得有点不妥,钱钟书先生那是文人,自然要清高,而且他本是"下蛋"的母鸡当然不愿意被吃蛋的俗人打扰的,况且当时也没有统计粉丝一说.可是我们是吃蛋的啊,而且是大老粗,现在还统计粉丝数量,我们就需要知道谁下的蛋,是不是毒蛋,对不对?也得看看下了这么好