首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

DB笔试面试469】Oracle如何删除重复记录?

题目部分 Oracle如何删除重复记录? 答案部分 平时工作可能会遇到这种情况,当试图对表某一列或几列创建唯一索引时,系统提示ORA-01452 :不能创建唯一索引,发现重复记录。...这个时候只能创建普通索引或者删除重复记录后再创建唯一索引。 重复数据可能有这样两种情况:第一种是只有某些字段一样,第二种是两记录完全一样。...1、删除重复记录方法原理 在Oracle,每一条记录都有一个ROWID,ROWID在整个数据库是唯一,ROWID确定了每条记录是在Oracle哪一个数据文件、块、上。...2、删除重复记录方法 若想要删除部分字段重复数据,则使用下面语句进行删除,下面的语句是删除字段1字段2重复数据: DELETE FROM 名 WHERE (字段1, 字段2) IN (...SELECT 字段1,字段2 FROM 名 GROUP BY 字段1,字段2 HAVING COUNT(1) > 1); 也可以利用临时方式,先将查询到重复数据插入到一个临时,然后进行删除

2.7K30

DB笔试面试386】在Oracle,ROWIDROWNUM区别是什么?

Q 题目 在Oracle,ROWIDROWNUM区别是什么? A 答案 Oracle两个著名伪列ROWIDROWNUM,下面分别来介绍它们。...ROWID可以分为以下几种类型: l 物理ROWID:存储堆组织簇、分区、索引分区地址。 l 逻辑ROWID:存储索引组织地址。...l 外部ROWID:是外来(如通过网关访问DB2标识符。它们不是标准Oracle数据库ROWID。 有一种数据类型称为通用ROWID或UROWID,支持各种ROWID。...(二)ROWNUM ROWNUM是一个伪列,不是真正列,在并不真实存在,它是Oracle数据库从数据文件或缓冲区读取数据顺序。...DB笔试面试历史连接 http://mp.weixin.qq.com/s/Vm5PqNcDcITkOr9cQg6T7w About Me:小麦苗 ● 本文作者:小麦苗,只专注于数据库技术,更注重技术运用

54510
您找到你想要的搜索结果了吗?
是的
没有找到

使用VBA删除工作多列重复

标签:VBA 自Excel 2010发布以来,已经具备删除工作重复功能,如下图1所示,即功能区“数据”选项卡“数据工具——删除重复值”。...图1 使用VBA,可以自动执行这样操作,删除工作所有数据列重复,或者指定列重复。 下面的Excel VBA代码,用于删除特定工作所有列所有重复。...如果没有标题,则删除代码后面的部分。...如果只想删除指定列(例如第1、2、3列)重复项,那么可以使用下面的代码: Sub DeDupeColSpecific() Cells.RemoveDuplicates Columns:=Array...(1, 2, 3), Header:=xlYes End Sub 可以修改代码中代表列数字,以删除你想要重复

11.1K30

如何恢复oracle删除(drop掉)?

恢复: flashback table test_drop to before drop; 或者: flashback table "BIN$b+XkkO1RS5K10uKo9BfmuA==$0..." to before drop; 注意: 必须9i或10g以上版本支持,flashback无法恢复全文索引 详解: 以下是一个不该发生却经常发生情况:用户删除了一个非常重要 ― 当然是意外地删除...(在某些时候,这个不幸用户可能就是 DBA!) Oracle9i Database 推出了闪回查询选项概念,以便检索过去某个时间点数据,但它不能闪回 DDL 操作,如删除操作。...唯一恢复方法是在另一个数据库中使用空间时间点恢复,然后使用导出/导入或其他方法,在当前数据库重新创建。...这一过程需要 DBA 进行大量工作并且耗费宝贵时间,更不用说还要使用另一个数据库进行克隆。

2K20

如何恢复oracle删除(drop掉)?

恢复: flashback table test_drop to before drop; 或者: flashback table "BIN$b+XkkO1RS5K10uKo9BfmuA==$0"...to before drop; 注意: 必须9i或10g以上版本支持,flashback无法恢复全文索引 详解: 以下是一个不该发生却经常发生情况:用户删除了一个非常重要 ― 当然是意外地删除...(在某些时候,这个不幸用户可能就是 DBA!) Oracle9i Database 推出了闪回查询选项概念,以便检索过去某个时间点数据,但它不能闪回 DDL 操作,如删除操作。...唯一恢复方法是在另一个数据库中使用空间时间点恢复,然后使用导出/导入或其他方法,在当前数据库重新创建。...这一过程需要 DBA 进行大量工作并且耗费宝贵时间,更不用说还要使用另一个数据库进行克隆。

1.6K30

DB笔试面试643】在Oracle,如何查询索引历史统计信息?

♣ 题目部分 在Oracle,如何查询索引历史统计信息?...♣ 答案部分 从Oracle 10g开始,当收集统计信息时候,旧统计数据被保留,如果因为新统计信息而出现性能问题,旧统计信息就可以被恢复。...历史统计信息保存在以下几张: l WRI$_OPTSTAT_TAB_HISTORY 统计信息 l WRI$_OPTSTAT_IND_HISTORY 索引统计信息 l WRI$_OPTSTAT_HISTHEAD_HISTORY...这些统计信息在SYSAUX空间中占有额外存储开销,所以应该注意并防止统计信息将空间填满。...下面的查询返回统计信息已经被删除日期(所以只有在这日期之后统计信息才可能被恢复)。

2.3K20

DB笔试面试592】在Oracle之间关联方式有哪几种?

♣ 题目部分 在Oracle之间关联方式有哪几种?...在嵌套循环连接Oracle读取驱动(外部每一,然后在被驱动(内部检查是否有匹配,所有被匹配行都被放到结果集中,然后处理驱动下一。...这个过程一直继续,直到驱动所有行都被处理。这是从连接操作可以得到第一个匹配最快方法之一,这种类型连接可以用在需要快速响应语句中。...嵌套循环连接可以先返回已经连接,而不必等待所有的连接操作处理完才返回数据,这可以获取快速响应。嵌套循环连接适用于大关联,一般小作为驱动。...这个阶段如果被驱动连接值没有与驱动连接值相等的话,那么这些记录将会被丢弃而不进行探测。 这种方式适用于较小完全可以放于内存情况,这样总成本就是访问两个成本之和。

2.1K10

DB笔试面试398】Oracle数据库,以下哪个命令可以删除整个数据,并且无法回滚()

题目 Oracle数据库,以下哪个命令可以删除整个数据,并且无法回滚() A、DROP B、DELETE C、TRUNCATE D、CASCADE A 答案 答案:C。...DELETE、DROPTRUNCATE异同点如下表所示: 相同点1、TRUNCATE不带WHERE子句DELETE及DROP都会删除所有数据 2、DROPTRUNCATE都是DDL语句,...执行后会自动提交 3、索引大小会自动进行维护不同点分类DROPTRUNCATEDELETE是否删除结构删除结构及其约束,且依赖于该存储过程函数等将变为INVALID状态只删除数据不删除定义...、约束、触发器索引SQL命令类型DDL语句,隐式提交,不能对TRUNCATEDROP使用ROLLBACK命令DML语句,事务提交(COMMIT)之后才生效,可以使用ROLLBACK语句撤销未提交事务删除数据是否放入回滚段...由于是在底层修改了数据字典,所以,无论是大还是小执行都非常快,而DELETE是需要读取数据到Undo,所以,对于大进行DELETE全操作将会非常慢安全性DROPTRUNCATE在无备份情况下需谨慎使用方面想删除部分数据只能用

4.7K20

Oracle数据序列、索引、视图、事务操作详解以及rowid rownum简单介绍

序列(sequence) 序列是 Oracle 特有的对象, 用于生成一个自动递增数列....视图(view) 视图是从若干基本(或)其他视图构造出来. 视图中并不会存放数据, 只会存放视图定义语句....但是 rowid 是由 Oracle 维护, 人力无法做到 5.2 rownum rownum 是一个伪列, 查询时候除非特别指定,否则不会显 示....表示行号, 常用于控制查询返回行数. 5.2.1 通过 rownum 进行 TOP-N 查询 当 rownum order by 一起使用时,会首先选出符合 rownum 条件记录,然后再进行排序...5.2.2 通过 rownum 进行分页查询 由于先要进行 where 条件判断, 满足条件后才能生成rownum, 所以导致 rownum 无法进行大于(>)大于等于(>=)判断.

1.2K10

SQL DELETE 语句:删除记录语法示例,以及 SQL SELECT TOP、LIMIT、FETCH FIRST 或 ROWNUM 子句使用

SQL DELETE 语句 SQL DELETE 语句用于删除现有记录。 DELETE 语法 DELETE FROM 名 WHERE 条件; 注意:在删除记录时要小心!...请注意DELETE语句中WHERE子句。WHERE子句指定应删除哪些记录。如果省略WHERE子句,将会删除所有记录!...可以在不删除情况下删除所有。...这意味着结构、属性索引将保持不变: DELETE FROM 名; 以下 SQL 语句将删除 "Customers" 所有,而不删除: DELETE FROM Customers; 删除... ROWNUM 以下 SQL 语句展示了旧版 Oracle 等效示例: 选择 "Customers" 前 3 条记录: SELECT * FROM Customers WHERE ROWNUM

1.7K20

DB笔试面试593】在Oracle访问方式有哪几种?

♣ 题目部分 在Oracle访问方式有哪几种?...需要注意是,由于全扫描是扫描高水位以下所有数据块,所以即使使用DELETE语句清空了目标所有数据,高水位线还是会在原来位置,这意味着对该扫描操作所耗费时间与删除之前相比并不会有明显改观...Oracle能做索引全扫描前提条件是目标索引至少有一个索引键值列属性是NOT NULL。...这是因为索引快速全扫描时Oracle是根据索引行在磁盘上物理存储顺序来扫描,而不是根据索引逻辑顺序来扫描,所以扫描结果才不一定有序(对于单个索引叶子块索引而言,其物理存储顺序逻辑存储顺序一致...对Oracle而言,可以通过Oracle内置ROWID伪列得到对应记录所在ROWID值,然后通过DBMS_ROWID包相关方法(DBMS_ROWID.ROWID_RELATIVE_FNO

1.2K40

Oracle,如何正确删除空间数据文件?

TS_DD_LHR DROP DATAFILE '/tmp/ts_dd_lhr01.dbf'; 关于该命令需要注意以下几点: ① 该语句会删除磁盘上文件并更新控制文件和数据字典信息,删除之后原数据文件序列号可以重用...PURGE;”或者在已经使用了“DROP TABLE XXX;”情况下,再使用“PURGE TABLE "XXX在回收站名称";”来删除回收站,否则空间还是不释放,数据文件仍然不能DROP...需要注意是,据官方文档介绍说,处于READ ONLY状态空间数据文件也不能删除,但经过实验证明,其实是可以删除。...OFFLINE FOR DROP命令相当于把一个数据文件置于离线状态,并且需要恢复,并非删除数据文件。数据文件相关信息还会存在数据字典控制文件。...oracle/app/oracle/product/11.2.0/db/dbs/+DATAA'; ---->无法识别数据文件 SQL>alter database datafile 11 offline

6.2K30

DB笔试面试630】在Oracle,怎样收集统计信息?怎样收集分区统计信息?

♣ 题目部分 在Oracle,怎样收集统计信息?怎样收集分区统计信息?...=>'PARTITION',CASCADE=>TRUE);--针对分区单个分区进行收集统计信息 除此之外,还有一些其它用法,如下所示: l EXEC DBMS_STATS.GATHER_DATABASE_STATS...();--收集当前数据库下所有用户统计信息 l EXEC DBMS_STATS.GATHER_SCHEMA_STATS(USER);--收集用户下所有对象统计信息 当系统分区数据量很大时,如果每次都收集全部分区必然会导致统计信息收集非常慢...,在Oracle 11g之后可以通过设置INCREMENTAL来只针对数据有变动分区做收集: EXEC DBMS_STATS.SET_TABLE_PREFS(USER,'TABLE_NAME','INCREMENTAL...INCREMENTAL值 本文选自《Oracle程序员面试笔试宝典》,作者:小麦苗

96330

关于Oracle 数据块、B树索引5种索引扫描

所以对Oracle数据索引了解是至关重要。 数据块是Oracle最小存储单位,Oracle数据存放在块,一个块占用一定磁盘空间。...rowid也是oracle中一个比较重要概念,rowid是oracle数据库每一数据唯一标识符,在oracle内部通常就是使用它来访问数据。...索引是一种允许直接访问数据某一数据树型结构,为了提高查询效率而引入,是一个独立于对象,可以存放在与不同空间中。索引记录存有索引关键字指向数据指针(地址)。...索引优点: ①可以加快数据检索速度。 ②可以加速之间连接。...③当对表数据进行增加、删除修改时候,索引需要动态维护,这样就降低了数据维护速度。

88130

DB笔试面试394】在Oracle,SESSIONSPROCESSES关系是什么?

题目 在Oracle,SESSIONSPROCESSES关系是什么? 答案 在数据库安装完成后,常常需要设置SESSIONSPROCESSES大小。...通过查找官方文档,可以知道SESSIONS参数值在Oracle 10g11g是不同,如下表所示: 属性Oracle 10gOracle 11gR2参数值类型IntegerInteger默认值Derived...11gR1,该参数值10g是一样,修改语句为“ALTER SYSTEM SET PROCESSES|SESSIONS=200 SCOPE=SPFILE;” 由于SESSIONS值是根据PROCESSES...在Oracle 11gR2以下版本,SESSIONS大小计算公式为:(1.1 * PROCESSES) + 5;在Oracle 11gR2,SESSIONS大小计算公式为:(1.5 * PROCESSES...当数据库连接并发用户已经达到SESSIONS值时,又有新会话连接进来,就会报错“ORA-00018,"maximum number of sessions exceeded"”错误。

1.3K20
领券