"oracle"中rowid怎么用?

 我来答
奔驰M888
2018-01-02 · TA获得超过1.1万个赞
知道大有可为答主
回答量:1846
采纳率:0%
帮助的人:2694万
展开全部
rowid 是查找一个表中记录的最快方式,比任何索引都要快。
下面第一列就是rowid,至于为什神棚么他是伍消确定一条记录的最快方式,你可以查查他是由哪几部分组成的。

[SCOTT@orcl] SQL>select rowid,t.empno,t.ename from emp t;
ROWID EMPNO ENAME
------------------ ---------- ----------
AAAMgzAAEAAAAAgAAA 7369 SMITH
AAAMgzAAEAAAAAgAAB 7499 ALLEN
AAAMgzAAEAAAAAgAAC 7521 WARD
AAAMgzAAEAAAAAgAAD 7566 JONES
AAAMgzAAEAAAAAgAAE 7654 MARTIN
AAAMgzAAEAAAAAgAAF 7698 BLAKE
AAAMgzAAEAAAAAgAAG 7782 CLARK
AAAMgzAAEAAAAAgAAH 7788 SCOTT
AAAMgzAAEAAAAAgAAI 7839 KING
AAAMgzAAEAAAAAgAAJ 7844 TURNER
AAAMgzAAEAAAAAgAAK 7876 ADAMS
AAAMgzAAEAAAAAgAAL 7900 JAMES
AAAMgzAAEAAAAAgAAM 7902 FORD
AAAMgzAAEAAAAAgAAN 7934 MILLER

--你可以查腔瞎知询
[SCOTT@orcl] SQL>select empno,ename,job from emp where rowid = 'AAAMgzAAEAAAAAgAAN';

EMPNO ENAME JOB
---------- ---------- ---------
7934 MILLER CLERK
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
语文知识拓展
2018-05-28 · TA获得超过263个赞
知道答主
回答量:4
采纳率:100%
帮助的人:995
展开全部

ROWID是一种数据类型,它使用基于64为编码的18个字符来唯一标识一条记录物理位置的一个ID,类似于Java中一个对象的哈希码,都是为了唯一标识对应对局型迹象的物理位置,需要注意的是ROWID虽然可以在表中桐并进行查询,但是其值并未存储在表中,所以不支持增删改操作,下面看个例子:

[html] view plain copy

  • SELECT ROWNUM,ROWID,empno,ename,job FROM emp WHERE ROWNUM <= 5;  

  • 结果如下:

  • 可以看到ROWID确实由18个字租扮符组成,组成结构如下:

    数据对象编号    文件编号    块编号    行编号    

    OOOOOO    FFF    BBBBBB    RRR    

  • 至于ROWID的作用,由于ROWID用来唯一标识表中数据的唯一性,所以可以利用这个特性去除重复,举个例子,首先运行下述两行代码:
  • [html] view plain copy

  • CREATE TABLE dept_bak AS SELECT * FROM dept;  

  • INSERT INTO dept_bak SELECT * FROM dept;  

  • 得到一个如下的数据库表

  • 很明显,数据有重复的,但是ROWID肯定不会重复的,那么就可以利用这个特性去重,简单示例代码如下:

    [html] view plain copy

  • DELETE FROM dept_bak WHERE ROWID NOT IN( SELECT MIN(ROWID) FROM dept_bak GROUP BY DEPTNO);  

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式