作者:杨裙
本次任务完成时间:2019年4月6日
开发工具与关键技术:Oracle sql*plus 、 PLSQL Developer

1、 ROWNUM:
ROWNUM它是ORACLE分页查询,ROWNUM是对结果集添加的一个伪列,即先查到结果集之后在加上去的一个伪列,一定要先有结果集,ROWNUM它是对符合条件的序列号,它总是从1开始进行排序。在ROWNUM语句中不能直接写在查询的语句上,因为这样查询出来的结果全部都是乱序。所以都是把ROWNUM放在子查询的外层,查询出来即可。有些子查询会存在ORDER BY 排序的写法,因为ORDER BY 无论在什么语句中其执行顺序都是最后才进行执行,所以只能让其排序,把ROWNUM放在外层,所以会比没有ORDER BY 语句的查询的运行效率较低一点。
需要注意的是:ROWNUM只能使用 < 或 <= , 而用= 、> 或 >= 都将不能返回任何数据。如果遇到要使用=、>、>=、那么只能把ROWNUM写在子查询的外面,那么就可查询出来。
如果遇到 < 或 <= 那么可以把ROWNUM放在子查询的外层,当同时存在= 、> 或 >= 可以再写一层查询,然后把where 条件放在最后一层,这样可以提高运行的效率,如图:

2、 ROWID:行地址
ROWID行地址(物理地址),它也是一个伪列,并不存在于实际的列表中,它是唯一的标志记录。
ROWID 它可以用来删除重复数据,只留下唯一一条数据,如果当存在很多数据的时候,用ROWID就会非常的方便。如果直接写一个删除数据的语句,那么其就会把所有重复的数据全部删除,一条数据都没有,那么这样就不是我们想要的结果。ROWID它就不会把所有重复的数据删除,它会根据它的物理地址进行排序,其数据都是唯一的,排序如图:

它的排序都是不重复的,如果在子查询查询出最大或最小的那条数据,写条件的时候让其不等于子查询查询出来的结果,那么ROWID它删除时就会留下子查询查询出来的数据,同时也唯一的一条数据,如图:

ROWNUM和ROWID的认识相关推荐

  1. Oracle中的rownum和rowid

    --注意:rownum和rowid只有Oracle有,其它数据库是不支持的 select * from scott.dept; --查询的结果称为'结果集' --rownum 伪列 '结果集'中产生的 ...

  2. oracle中 rownum与rowid的理

    一. Oracle分页查询 我们先看学习一下oracle分页查询的语法示例,然后在具体学习用rownum的原理. /*从第1条开始,每次选N个,从第1+M个开始每次选N个*/ /**/ select  ...

  3. oracle中 rownum和rowid的用法

    1.ROWNUM的使用--TOP-N分析 使用SELECT语句返回的结果集,若希望按特定条件查询前N条记录,可以使用伪列ROWNUM. ROWNUM是对结果集加的一个伪列,即先查到结果集之后再加上去的 ...

  4. rownum与rowId

    一.RowNum Rownum是oracle生成结果集时得到的一个伪列, 按照读出行的顺序, 第一条rownum=1, 第二条=2. 对于 Oracle 的 rownum 问题,很多资料都说不支持&g ...

  5. oracle rowid java_oracle数据库之rownum和rowid用法

    Rownum和 Rowid是Oracle数据库所特有的,通过他们可以查询到指定行数范围内的数据记录. 以下通过例子讲解: --为了方便,首先,查找dept表中的所有. select deptno,dn ...

  6. sqlanyshere转mysql_【SQL】Oracle和Mysql的分页、重复数据查询(limit、rownum、rowid)

    上周三面试题有两道涉及Oracle的分页查询,没有意外地凉了,现在总结一下. · Mysql mysql的分页可以直接使用关键字limit,句子写起来比较方便. 语法: ① limit m,n -- ...

  7. Oracle中查询rownum和rowid的区别

    在查询中,我们可以注意到,类似于"select xx from table where rownum < n"(n>1)这样的查询是有正确含义的,而"sele ...

  8. 【SQL】ROWNUM和ROWID

    一.ROWNUM ROWNUM伪列是Oracle先查到结果集之后再加上去的一个伪列,这个伪列对符合条件的结果添加一个从1开始的序列号,并且序列号是从1开始增序排列的. SQL> select r ...

  9. Oracle查询 rownum和rowid的区别

    在Oracle中,有一个很有趣的东西,那就是rownum.当你从某个表中查询数据的时候,返回的结果集中都会带有rownum这个字段,而且有时候也可以使用rownum进行一些条件查询. 在查询中,我们可 ...

最新文章

  1. ListView与DateGridView
  2. 【Linux+vscode】配置好秘钥之后还是不能ssh连接(离线配置)
  3. 2014值得期待的Erlang两本新书
  4. 诺基亚计划推出高档触摸屏手机以对抗iPhone
  5. MongoDB Replication
  6. 除法求模中求逆元的两种方法
  7. 全国省市区表完整版(自己整理)
  8. Exploring Plain Vision Transformer Backbones for Object Detection.
  9. 数据分析|数据分布特征的描述
  10. JRebel启动报错:compile error: cannot find constructor org.zeroturnaround.javarebel.integration.spring
  11. linux上创建loopback接口,在python中的特定接口的linux loopback接口
  12. oracle磁带的使用期限,存储的损耗 关于磁带寿命的一些探讨
  13. 微信对话框删除后怎么找回聊天记录?
  14. 【新手】关于使用C语言创建数组及其API
  15. Informatica使用操作流程--Router(由器器)、排序、序列 使用 案例6
  16. 我眼中的《芳华》读后感作文2500字
  17. ndk开发(二)JNI、java互调
  18. omnet学习记录之tictoc1-18
  19. React实现动画效果
  20. 美丽乡村——大堰镇南溪村

热门文章

  1. Didn't find class XXX on path: DexPathList [zip file XXX]
  2. 软考高级 真题 2016年下半年 信息系统项目管理师 论文
  3. C++数组求和:关于accumulate函数的使用,简化编写代码量的方法
  4. android 陀螺仪源码,陀螺仪源码 android
  5. Vim插件之vim-autoformat
  6. [OTA-day3SPI]W25Q64擦写
  7. jupyter notebook报错:ModuleNotFoundError: No module named ‘cufflinks‘
  8. 关于Python的静态变量
  9. web网页设计期末课程大作业:红色中国文化主题网站设计——灌篮高手(4页)HTML+CSS
  10. C#蓝牙连接及传输数据的三种方式(蓝牙传输文件、二进制数据)