`
yxw22
  • 浏览: 26502 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
阅读更多

truncate,delete,drop的异同点

注意:这里说的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 中文手册合集 chm版

    6. "oracle函数大全(分类显示).chm":此手册以分类的方式展示了Oracle函数,便于快速查找和理解特定类型函数的使用方法。 7. "ORACLE九阴真经.chm":这个独特的标题可能寓意着这份手册包含了一些高级或进阶的Oracle...

    Oracle与DB2数据类型的分类对应说明

    因此,在将 Oracle 的 DATE 类型转换为 DB2 的 DATE 类型时,需要将时、分、秒部分删除。同时,DB2 的 TIME 类型包含时、分、秒,可以与 Oracle 的 TIMESTAMP 类型对应。 在数据类型转换时,需要注意以下几点: * ...

    Oracle数据库常用sql语句的分类和常用函数.docx

    根据提供的文档信息,本文将详细解析Oracle数据库中的关键SQL语句分类、常用SQL语句以及Oracle函数的应用场景。此外,还将简要介绍Oracle数据库的一些基本管理命令,如启动与关闭服务、用户管理等。 ### 一、Oracle...

    oracle中索引的使用

    在Oracle数据库系统中,索引是一种重要的数据结构,它能够显著提升数据查询的效率。索引的使用是数据库性能优化的关键环节,尤其是在大型企业级应用中,对索引的合理设计和管理对于系统的运行速度至关重要。这篇博文...

    oracle索引与分区索引介绍

    在本文中,我们将详细介绍 Oracle 索引与分区索引的概念、特点、分类、创建方法、维护操作等方面的知识点。 什么是 Oracle 索引? Oracle 索引是一种数据结构,它可以快速地定位特定的数据行,以提高查询性能。...

    Oracle字符相似度函数

    - **文本分类**:在文本分类任务中,计算文本的相似度有助于确定它们属于同一类别的概率。 在使用这些函数时,需要注意以下几点: - 对于大数据量的处理,可能会有性能问题,因此在实际应用中可能需要进行优化,如...

    oracle 教程 中文教程 数据库 教程

    这意味着一旦事务完成,无论成功还是失败,临时表中的数据都会被删除。同样地,不同会话之间也是互相隔离的。 **创建语法示例**: ```sql CREATE GLOBAL TEMPORARY TABLE Classes ( Class_id NUMBER(5), Class...

    oracle oracle_dblink详解.

    数据库链接(DBlink)是 Oracle 数据库中的一种对象,允许用户查询远程表和执行远程程序。在分布式环境中,数据库链接是必要的。数据库链接是单向的连接,在创建数据库链接时,Oracle 会在数据字典中保存相关的...

    ORACLE 中文教程.PDF

    #### 3.2 SQL语句分类 - **数据查询语句(SELECT)**:用于从数据库中检索数据。 - **数据操作语句(DML)**:包括插入(INSERT)、删除(DELETE)和更新(UPDATE)操作。 - **数据定义语句(DDL)**:用于创建...

    ORACLE中的经典SQL及函数

    单行函数在更新(UPDATE)、插入(INSERT)和删除(DELETE)操作中同样有用。需要注意的是,与NULL值的处理是使用单行函数时的一个关键点。NULL表示未知或空值,当运算符或函数遇到NULL时,通常会返回NULL,除非特定...

    oracle 知识库 (整理的chm文档)

    学习Oracle,首先要掌握SQL的查询、插入、更新和删除等基本操作。 2. **数据库架构**:Oracle数据库由多个组成部分构成,如表空间、数据文件、控制文件、重做日志文件和实例等。理解这些组件的作用和相互关系是管理...

    oracle培训值得拥有

    Oracle数据库是全球广泛使用的大型关系型数据库管理系统,尤其在企业级应用中占据重要地位。Oracle培训对于数据工程师来说,能够提升他们的技能水平,使他们更好地掌握数据库管理、数据处理和性能优化等方面的知识。...

    Oracle 表空间与数据文件

    表空间是 Oracle 数据库中的一个逻辑存储对象,用于存储永久段、临时段和回滚段等数据。 Oracle 表空间分类有系统表空间和非系统表空间。系统表空间包括 SYSTEM、SYSAUX 等,非系统表空间包括 USERS、EXAMPLE 等。每...

    oracle10g 安装操作实用手册

    1. 产品分类:Oracle 10g产品线涵盖了数据库产品、客户端产品、企业管理产品、中间件产品以及开发工具。每类产品都有其特定的功能和应用场景,例如数据库产品(Oracle Database 10g)用于数据存储和处理;客户端产品...

    oracle lock

    #### 三、Oracle中的锁分类 Oracle中的锁可以分为两大类:Enqueues和Latches。 1. **Enqueues**:这种类型的锁主要与业务逻辑相关,用于控制特定业务资源的并发访问。例如,当多个用户试图同时访问同一业务实体时,...

    从零开始oracle

    常用的技术包括聚类、分类、关联规则学习等。 **图1.3 数据仓库的体系结构** - **数据装载工具**:用于将原始数据转换成数据仓库中的格式。 - **数据库**:存储原始数据。 - **数据查询工具**:用于查询数据仓库中...

    oracle游标的总结oracle游标的总结

    Oracle 游标是 Oracle 数据库中的一种重要概念,用于查询数据库,获取记录集合(结果集)的指针。游标可以看作是一个临时表,你可以对其每一行的数据进行任意的操作。本文将对 Oracle 游标的概念、分类、声明方式、...

    oracle视频教程 下载地址

    在Oracle数据库中,用户管理是非常重要的一个方面,它涉及到创建用户、分配权限、设置密码策略等一系列活动。这部分内容可能会涵盖以下几点: - 如何创建新的数据库用户。 - 如何为用户分配不同的角色和权限。 - ...

Global site tag (gtag.js) - Google Analytics