Rowid和Rownum的区别
来源:互联网 发布:2017最新网络推广渠道 编辑:程序博客网 时间:2024/05/16 17:25
Rowid和Rownum对于数据库开发人员来说基本很少用到,因为在企业数据库开发中大多都是进行数据批处理,但是对于其他数据库人员来说还是会用到的。
rowid和rownum都是虚列,但含义完全不同。rowid是物理地址,用于定位oracle中具体数据的物理存储位置,而rownum则是sql的输出结果排序。通俗的讲:rowid是相对不变的,rownum会变化,尤其是使用order by的时候。
rowid 用于定位数据表中某条数据的位置,是唯一的、也不会改变
rownum 表示查询某条记录在整个结果集中的位置, 同一条记录查询条件不同对应的 rownum 是不同的而 rowid 是不会变的
例如有如下一张表 :USER
name
age
张三
20
李四
22
王五
23
当执行查询 : select rowid ,rownum ,name,age from USER order by age asc 时结果如下:
rowid
rownum
name
age
AAAOWhAAQAAALgdAAa
1
张三
20
AAAOWhAATAAALp7AAd
2
李四
22
AAAOWhAATAAALp7AAe
3
王五
23
当执行查询 : select rowid ,rownum ,name,age from USER order by age desc 时结果如下:
rowid
rownum
name
age
AAAOWhAATAAALp7AAe
1
王五
23
AAAOWhAATAAALp7AAd
2
李四
22
AAAOWhAAQAAALgdAAa
3
张三
21
ROWID:
1、为什么使用ROWID
ORACLE把ROWID作为B-树和其内部算法标示ROW的唯一标示。在ORACLE8以前的版本中,ROWID标示FILE、BLOCK,ROW NUMBER,只用一个数字代表FILE号。
在ORACLE8中,一个DATAFILE有两个数字代表:
1.)一个绝对值,是整个数据库唯一的。可以看DBA_DATA_FILES中的FILE_ID。
- SQL> SELECT FILE_ID FROM DBA_DATA_FILES;
- FILE_ID
- ----------
- 4
- 3
- 2
- 1
2.)一个相对值,在TABLESPACE中是唯一的,可以看DBA_DATA_FILES中的RELATIVE_FNO。
- SQL> SELECT RELATIVE_FNO FROM DBA_DATA_FILES;
- RELATIVE_FNO
- ------------
- 4
- 3
- 2
- 1
- rowid 和 rownum 的区别
- Rowid和Rownum的区别
- Rowid和Rownum的区别
- ROWID和ROWNUM的区别
- Rowid和Rownum的区别
- rownum和rowid的区别
- rowid 和 rownum 的区别
- Rowid和Rownum的区别
- Rowid和Rownum的区别
- rownum和rowid 的区别
- Oracle查询 rownum和rowid的区别
- oracle中rownum和rowid的区别
- oracle中rowid和rownum的区别
- oracle中rownum和rowid的区别 .
- oracle中rowid和rownum的区别
- oracle中rownum和rowid的区别
- oracle中rownum和rowid的区别
- oracle中rownum和rowid的区别
- 存储过程中 Fetch Next 的性能改善
- 可是姑娘,你为什么要编程呢?
- SpringMVC默认访问首页配置及web.xml配置
- ExtJs TextField 组件
- Java HashMap的hash算法
- Rowid和Rownum的区别
- C#使用BinaryReader类读取二进制文件
- maven入门
- vuejs 开发问题解决方案总结一
- MyEclipse8.6设置JSP文件默认pageEncoding为UTF-8
- Linux开机启动步骤
- 单例模式常见的应用场景分析
- Iterator源码剖析
- Redhat 6.5 初探2