伪列、去重、分页

伪列并不是用户在建立数据库对象时由用户完成的,而是Oracle自动帮助用户建立的。
伪列分为两种,一种是rowid一种是rownum
ROWID:在数据表中每一行所保存的记录,实际上Oracle都会默认为每条记录分配一个唯一的地址编号。

rowid主要用途是用于去除重复数据,
例如:mydept表中由于操作失误所以导致mydept表中有许多的重复数据。要求用户讲所有重复数据删除到只剩一条。
DELETE FROM mydept WHERE ROWID NOT IN( SELECT MIN(ROWID) FROM mydept GROUP BY deptno) ;

ROWNUM:一个数据行编号的伪列,他的内容是在用户查询数据的时候,为用户动态分配的一个数字。

rownum主要用途是分页
例如:
取出一个查询的第1行记录
SELECT * FROM emp WHERE ROWNUM=1 ;
取出一个查询的前5行记录
SELECT * FROM
(SELECT empno,ename,job,hiredate,sal,mgr,deptno,ROWNUM rn FROM emp WHERE ROWNUM<=5) temp
WHERE temp.rn>0 ;
显示雇员表中的6~10条记录
SELECT * FROM (SELECT empno,ename,job,hiredate,sal,mgr,deptno,ROWNUM rn
FROM emp WHERE ROWNUM<=10) temp
WHERE temp.rn>5

猜你喜欢

转载自blog.csdn.net/bigdata_zx/article/details/83061120