学习笔记(31):Oracle数据库-ROWID

立即学习:https://edu.csdn.net/course/play/3574/62096?utm_source=blogtoedu

通过ROWID(相对唯一地址)查询得到一串数据以“AAAR3qAAEAAAACHAAA”为例

ROWID组成:

1.数据对象变编号  AAAR3q

2.数据文件编号  AAE

3.数据保存的块号  AAAACH

4.数据保存的行号  AAA

 

实例:某张表中有许多完全重复的数据,要求把重复数据删除,只留最早的一条数据

分析:

1.不能直接使用删除语句,这样会把所有满足条件的数据全部删除

2.最早录入的ROWID一定是最小的,使用MIN()函数

3.因为数据有重复,可以考虑分组

SELECT MIN(ROWID) FROM 表名 GROP BY 重复数据的字段---->查出所有不重复的数据

4.再使用NOT IN删除其他数据,结果为

DELETE FROM 表名 WHERE(

    SELECT MIN(ROWID)

    FROM 表名

    GROP BY 重复数据的字段

);

后期索引中会使用

上一篇:Oracle 索引创建及管理


下一篇:SQLite 递增主键 (Autoincrement)