
“
每天一个测试技术
只需几分钟
川石信息 带你学点更好的


川石信息|腾讯课堂
免费试学 | 性能测试
ROWID 是 ORACLE 中的一个重要的概念。用于定位数据库中一条记录的一个相对唯一地址值。通常情 况下,该值在该行数据插入到数据库表时即被确定且唯一。
ROWID 它是一个伪列,它并不实际存在于表 中。它是ORACLE 在读取表中数据行时,根据每一行数据的物理地址信息编码而成的一个伪列。所以根 据一行数据的ROWID 能找到一行数据的物理地址信息。从而快速地定位到数据行。数据库的大多数操作 都是通过ROWID 来完成的,而且使用ROWID 来进行单记录定位速度是最快的。我们可以将其用于删除 重复数据。
利用rowid删除表中重复数据
-- 1、找出重复数据 :哪个学生 哪门课重复了select name,course,count(1) from tb_student group by name,course;select name,course,count(1) from tb_student group by name,course having count(1)>1;-- 2、删除重复数据 :删除重复记录-- 每条记录的唯一标识select s.* , rowid from tb_student s;-- 找出保留的rowidselect min(rowid) from tb_student group by name,course;-- 删除delete from tb_student where rowid not in (select min(rowid) from tb_studentgroup by name,course);
左右拉动查看完整代码
ROWNUM 是一种伪列,它会根据返回记录生成一个序列化的数字。排序后的结果集的顺序号,每一个 结果集都有自己顺序号 ,不能直接查询大于 1 的数。利用ROWNUM,我们可以生产一些原先难以实现的结果输出。例如实现分页操作。
rownum :1、必须排序 2、不能直接取大于 1 的数
oracle 中 索引从 1 开始,java 程序 从 0 开始
-- 最底层 rownum 数据库默认顺序号 -->没有用的select emp.*, rownumfrom emp;select emp.*, rownum from emp order by sal;-- 自己 排序后结果集的顺序号select e.*, rownum from (select * from emp order by sal desc) e;-- 取出工资前5名select e.*, rownumfrom (select * from emp order by sal desc) ewhere rownum <= 5;-- 取出 工资 3-5 名select e.*, rownumfrom (select * from emp order by sal desc) ewhere rownum <= 5and rownum >= 3;-- 三层模板 (分页)select e.*from (select e.*, rownum rnfrom (select * from emp order by sal desc) ewhere rownum <= 5) ewhere rn >= 3;/*select 字段列表 from (select e.*,rownum rn from (select from 表 order by 字段) ewhere rownum<= 最大值)where rn>=最小值*/select e.*from (select e.*, rownum rnfrom (select * from emp order by sal desc) ewhere rownum <= 10) ewhere rn >= 6;
左右拉动查看完整代码

今天的内容就学习到这里了,每个工作日小编都会更新一个有关测试的小知识,希望大家多多关注我们,一起来学习喔!
温馨提示:添加老师微信【13691729932】可以获取全套软件测试自学资料!
往期回顾 
扫码邀你加入
软件测试群


免费软件测试课
川石课堂
文章转载自西安川石,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




