1, DELETE (删除数据表里记录的语句)
DELETE FROM表名 WHERE 条件;
注意:删除记录并不能释放ORACLE里被占用的数据块表空间. 它只把那些被删除的数据块标成unused.
如果确实要删除一个大表里的全部记录, 可以用 TRUNCATE 命令, 它可以释放占用的数据块表空间
TRUNCATE TABLE 表名;
此操作不可回退.
http://www.chinaunix.net 作者:oraix 发表于:2004-11-28 23:02:53
注意:这里说的delete是指不带where子句的delete语句
相同点
truncate和不带where子句的delete, 以及drop都会删除表内的数据
不同点:
1. truncate和 delete只删除数据不删除表的结构(定义)
drop语句将删除表的结构被依赖的约束(constrain),触发器(trigger),索引(index); 依赖于该表的存储过程/函数将保留,但是变为invalid状态.
2.delete语句是dml,这个操作会放到rollback segement中,事务提交之后才生效;如果有相应的trigger,执行的时候将被触发.
truncate,drop是ddl, 操作立即生效,原数据不放到rollback segment中,不能回滚. 操作不触发trigger.
3.delete语句不影响表所占用的extent, 高水线(high watermark)保持原位置不动
显然drop语句将表所占用的空间全部释放
truncate 语句缺省情况下见空间释放到 minextents个 extent,除非使用reuse storage; truncate会将高水线复位(回到最开始).
4.速度,一般来说: drop>; truncate >; delete
5.安全性:小心使用drop 和truncate,尤其没有备份的时候.否则哭都来不及
使用上,想删除部分数据行用delete,注意带上where子句. 回滚段要足够大.
想删除表,当然用drop
想保留表而将所有数据删除. 如果和事务无关,用truncate即可. 如果和事务有关,或者想触发trigger,还是用delete.
如果是整理表内部的碎片,可以用truncate跟上reuse stroage,再重新导入/插入数据
分享到:
相关推荐
### Oracle删除表中的重复数据方法 在Oracle中删除表中的重复数据,可以采用多种策略,但通常涉及创建一个临时表来保存去重后的数据,然后用这个临时表覆盖原始表。这种方法可以避免直接修改原表带来的风险,确保...
若在程序中执行该语句则会报异常,这就需要我们在删除表前先判断该表是否存在,若存在则删除. DECLARE num NUMBER; BEGIN SELECT COUNT(1) INTO num FROM USER_TABLES WHERE TABLE_NAME = UPPER('tableName'); IF num...
本文将深入探讨Oracle删除表空间可能遇到的问题以及相应的解决方案,旨在帮助DBA们更好地管理和维护数据库。 首先,我们要明白表空间是Oracle数据库存储数据的逻辑结构,它由一个或多个数据文件组成。在删除表空间...
本文将深入探讨如何在Oracle环境中实现定时删除表空间的数据并释放空间,主要涵盖以下几个关键知识点: 1. **Oracle 表空间(Tablespaces)**:表空间是Oracle数据库中存储数据的基本单位,它由一个或多个数据文件...
在Oracle数据库管理中,删除表空间数据文件是一项关键操作,涉及到数据的安全性和系统的稳定性。本文将详细介绍如何正确地删除Oracle表空间数据文件,探讨OFFLINE和OFFLINE DROP的区别,以及在操作系统层面删除数据...
Oracle 删除表空间出现“无法删除用于强制唯一主键的索引”解决方法 在 Oracle 数据库中,删除表空间时可能会出现“无法删除用于强制唯一主键的索引”的错误。这种情况下,无法删除表空间,需要找到解决方法。在...
一般的做法是直接删除表空间然后imp导入数据,但是我这边的情况是远程有一个web始终连着,为了免得每天还要去启动那个web服务,我就采用了这个做法,只删除表,这样不会断开连接,注意,这个web只是白天在用。...
在Oracle数据库管理中,安全...总之,通过查询`USER_TABLES`视图并使用PL/SQL的逻辑控制,我们可以安全地在Oracle中删除表,避免由于表不存在而导致的错误。这样的做法不仅提高了代码的健壮性,也增加了操作的可靠性。
在Oracle数据库管理中,创建与删除表空间以及用户授权是非常重要的操作。本文将详细介绍如何在Oracle环境下进行这些操作,包括创建表空间、为用户分配权限、以及如何删除表空间和用户。 ### 一、创建表空间 #### ...
创建删除表的过程 为了实现这一目标,可以通过编写一个 PL/SQL 过程来实现自动化删除。这种方法不仅提高了效率,还减少了出错的可能性。 ```sql CREATE OR REPLACE PROCEDURE pro_drop_table IS CURSOR cur IS ...
如果在删除表空间之前误删了对应的数据文件,可能会导致数据库无法正常启动和关闭。此时可通过以下步骤恢复: 1. **连接到数据库**: ```sql SQLPLUS / AS SYSDBA ``` 2. **如果数据库已启动,则先执行**: ``...
本篇文章将详细介绍如何在Oracle数据库中快速删除表空间,以及相关的重要知识点。 首先,理解表空间在Oracle中的角色至关重要。表空间是数据库的逻辑存储单元,它由一个或多个数据文件组成,用于存储数据库对象,如...
删除和重建 Oracle 实例 Oracle 数据库是一种关系型数据库管理系统,广泛应用于企业级数据库应用中。然而,在某些情况下,我们需要删除和重建 Oracle 实例,以便解决一些问题或进行升级维护。在这篇文章中,我们将...
由于Oracle默认的行为是在删除表时将其放入回收站而非立即彻底删除,因此若想实现真正的删除,则需要采取额外的步骤来确保数据表被永久移除。下面将详细介绍几种实现彻底删除Oracle数据表的方法: 1. **使用PURGE...
analyze table tablename delete statistics,可以删除表的统计信息。 在 Oracle 数据库中,analyze 语句是非常重要的,它可以帮助数据库管理员更好地了解表的结构和数据分布,从而提高查询效率。 在分析表方面,...
在Oracle数据库中,进行多表关联的批量插入、批量更新和批量删除操作是常见的数据库管理任务,尤其是在处理大量数据时,这些操作能显著提高效率并减少资源消耗。本文将详细探讨这三个方面,并通过实例代码来展示如何...
### Oracle误删除表恢复 在Oracle数据库管理过程中,误删表是常见的操作失误之一,而如何有效、快速地恢复这些被误删的表对于DBA(数据库管理员)来说至关重要。本文将详细介绍如何在Oracle环境下利用回收站功能...
在Oracle数据库管理中,遇到“表无法删除”的问题是一个相对常见的挑战,尤其是在处理系统级用户如sys时。本文将深入探讨这一问题的原因、诊断步骤以及解决方案,基于给定的文件内容,提供一个全面的理解框架。 ###...