Oracle数据库——数据伪列

本文介绍如何使用ROWNUM和ROWID在SQL中进行数据排序、分页及删除重复记录,通过具体示例展示了如何选取特定行数的数据,以及如何利用ROWID进行物理地址定位。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

 

行号:ROWNUM

对数据进行动态添加序号

SELECT ROWNUM,ename,sal FROM emp;

 作用:

  1. 获取第一条数据;
    SELECT * FROM emp WHERE ROWNUM=1;
  2. 获取前N条数据

    SELECT * FROM emp WHERE ROWNUM<=6;

     

数据分页:

例:取出6~10行数据

SELECT * 
FROM (SELECT empno,ename,job,sal,hiredate,ROWNUM rn FROM emp WHERE ROWNUM<=10) temp
WHERE temp.rn>5;

 

行ID:ROWID

物理地址编号

SELECT ROWID,ename FROM emp;

ROWID                               
-----------------------------------  
AAAR3sAAEAAAACXAAA 
AAAR3sAAEAAAACXAAB 
AAAR3sAAEAAAACXAAC 
AAAR3sAAEAAAACXAAD 

  • 数据的的对象编号:AAAR3s
  • 数据保存的文件编号:AAE
  • 数据保存的块号:AAAACX
  • 数据的保存行号:AAA 

删除重复操作

DELETE FROM mydept
WHERE ROWID NOT IN(SELECT MIN(ROWID)
		   FROM mydept
		   GROUP BY deptno,dname,loc);

LIMIT

1. 如果只给定一个参数,它表示返回最大的记录行数目。

SELECT * FROM table LIMIT 5; //检索前 5 个记录行

2.如果给定两个参数,第一个参数指定第一个返回记录行的偏移量,第二个参数指定返回记录行的最大数目

SELECT * FROM table LIMIT 5,10; //检索记录行6-15 引用块内容

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值