Oracle数据库中rowid啥作用????!!!!!谢谢!!!!
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle数据库中rowid啥作用????!!!!!谢谢!!!!相关的知识,希望对你有一定的参考价值。
标识表中每条数据实际的物理地址。追问用来干什么?
追答可以用它来检索数据。
有时繁杂的数据检索时,普通检索条件不能达到要求,可以利用rowid来精确检索的结果。
一般在子查询的时候使用比较多。
ROWID可以分为物理rowid和逻辑rowid两种。普通的堆表中的rowid是物理rowid,索引组织表(IOT)的rowid是逻辑rowid。oracle提供了一种urowid的数据类型,同时支持物理和逻辑rowid。
物理rowid又分为扩展rowid(extended rowid)和限制rowid(restricted rowid)两种格式。限制rowid主要是oracle7以前的rowid格式,现在已经不再使用,保留该类型只是为了兼容性。
1.创建一临时表
create table test_rowid (id number, row_id rowid);
2.插入一行记录
insert into test_rowid values(1,null);
3.修改刚插入的记录
update test_rowid set row_id = rowid where id = 1;
4.查看rowid
select rowid,row_id from test_rowid;
Oracle数据库的伪列
伪列:Oracle 中伪列就像一个表列(表中的列),但是它并没有存储在表中,伪列可以从表中查询,但不能插入、更新和删除它们的值
常用的伪列有ROWID和ROWNUM。
ROWID的使用——快速删除重复的记录
解析:ROWID是数据的详细地址,通过rowid,oracle可以快速的定位某行具体的数据的位置。
ROWID可以分为物理rowid和逻辑rowid两种。
普通的表中的rowid是物理rowid,索引组织表(IOT)的rowid是逻辑rowid。
当表中有大量重复数据时,可以使用ROWID快速删除重复的记录。
查询语句:
select rowid,rownum from student
ROWNUM
ROWNUM 是查询返回的结果集中行的序号,可以使用它来限制查询返回的行数
通过测试可知,Rownum只能对=1和<N进行筛选,如果>M不能筛选,如何规避。
通过子查询构建临时表,让伪列Rownun称为临时表中的列,然后限定条件使用伪列的
别名。
利用伪列查询伪列编号等于2的数据
select *from
(
select id,name,rownum rn from student
) temp
where rn =2
利用伪列查询第4-6条数据
select *from
(
select temp.*,rownum rn from
(
select *from student
) temp
where rownum<=6
)where rn>=4
以上是关于Oracle数据库中rowid啥作用????!!!!!谢谢!!!!的主要内容,如果未能解决你的问题,请参考以下文章
gp里用啥代替oracle里rownum,用啥代替rowid???