Oracle 伪列 rownum & rowid

伪列
1.rownum伪列 行号
在进行查询的时候,默认情况下,只是显示了
数据表结构中的内容,可以利用rownum针对显示的数据进行一个自动的行号编号;
这个编号不是固定的,是动态生成的;
 在Oracle中RowNum可以做两件事情:
 1.取出第一条记录;
   select * from emp where rownum=1;
 2.取出前N行记录;(分页)
 --1.查询前10条数据;
 --2.将前十行数据当作临时表取出6-10行
 select * from(
 select rownum rn,e.empno,e.ename from emp e where rownum<=10)tmp where tmp.rn>5
 
 cureentPage=2;当前页
 pageSize=5;每页条数
 
 start=(cureentPage-1)*pageSize;开始的行
 end=cureentPage*pageSize;
 语法结果:
 SELECT ROWNUM rn,列名1,列名2,... FROM
 (SELECT ROWNUM,列名1,列名2,... FROM e.where rownum<=(cureentPage*pageSize)) tmp
  WHERE tmp.rn>(cureentPage-1)*pageSize

2.rowid伪列(存储有关)
  在进行表中数据保存的时候,除了用户可以见到的数据列之外,
  所以的表中的数据的行都会有一个唯一的一块物理地址编号,
  这种编号可以通过rowid查找到;
   select rowid,e.* from emp e;
   AAAR6E AAH AAAACb AAA
   数据的对象编号:AAAR6E
   数据保存文件编号:AAH
   数据保存的块号:AAAACb
   数据的保存行号:AAA
   任何情况下,都可以通过rowid确定唯一的一条;
   
   ---删除所有重复记录,且只保留最早增加的一条记录
   delete From dept where rowid not in(
    select min(Rowid)from dept group by deptno,dname,loc
   )

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值