`
freeskywcy
  • 浏览: 215016 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

Oracle删除表的几种方法

 
阅读更多

删除表(记录和结构)的语名delete   ————   truncate      ———— drop

  DELETE (删除数据表里记录的语句)

  DELETE FROM表名 WHERE 条件;

  注意:删除记录并不能释放ORACLE里被占用的数据块表空间. 它只把那些被删除的数据块标成unused.

  如果确实要删除一个大表里的全部记录, 可以用 TRUNCATE 命令, 它可以释放占用的数据块表空间

  TRUNCATE TABLE 表名;

  此操作不可回退.

  相同点

  truncate和不带where子句的delete, 以及drop都会删除表内的数据

  注意:这里说的delete是指不带where子句的delete语句

  不同点:

  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中删除表中的一列语句

  alter table 表名 drop colum 列名

分享到:
评论

相关推荐

    oracle下如何删除重复数据的几种方法

    oracle 数据库中重复的记录行的清理删除方法,总结了几种比较可行的方法路径并分析了方法的优劣

    oracle删除重复数据的几种方法

    oracle中删除重复的数据,你们都用什么方法呢,我觉得很不错的去重复数据的方法,给大家分享一下

    彻底删除 Oracle 的数据表

    由于Oracle的回收机制,当我们删除表的时候并没有彻底删除。而是放在Oracle回收站了,这里向你介绍了几种彻底删除表的方法

    oracle 批量删除表数据的几种方法

     删除PRIMARY_INDEX_TEST表中,MINDEX_ID字段为空的数据  情景二:  删除VIRTUAL_CARD_TEST表中的脏数据 2.解决方案  情景一的解决方案:  DELETE FROM PRIMARY_INDEX_TEST WHERE MINDEX_ID IS NULL  情景...

    oracle表数据误删还原

    ORACLE 表删除 后还原的几种办法 通过oracle提供的回闪功能:oracle保存在回滚保持段里的数据时间有一定的时间限制由undo_retention 这个参数值。。等等。。

    百亿级别海量数据删除方案(不停机维护)

    某大型央企SAP系统目前记录了2006年到2017年所有业务数据,随着时间的增长...所有的表数据量大概有100亿条数据,其中需要删除的估计大概有80亿条数据,并且此系统为核心系统不允许停机维护数据,所以删除数据十分麻烦。

    Oracle数据库中数据丢失的几种恢复方法

    根据oracle数据库的特点和提供的工具,主要方法有以下几种方法:利用逻辑备份使用import工具丢失数据的表利用物理备份来通过还原数据文件并进行不完全恢复利用dbms_logmnr包从redolog文件中恢复利用flashback特性...

    Oracle中用Rowid查找和删除表中的重复记录

    总结一下几种查找和删除重复记录的方法,适用于有大量重复记录的情况

    ORACLE重建索引总结

    3、以删除的叶节点数量:指得是数据行的delete操作从逻辑上删除的索引节点 的数量,要记住oracle在删除数据行后,将 “ 死 “ 节点保留在索引中,这样做可以加快sql删除操作的速度,因此oracle删除数据行后可以不必...

    操作系统重装后oracle数据库的恢复

    a、oracle数据库系统变量的恢复,ora.reg中饱含了oracle的主要系统参数,其中home项包含了不同的版本信息,导入注册表后可以根据情况修改、增加或者删除对应的home信息。 b、oracle odbc驱动参数的恢复,需要导入...

    ORACLE查询删除重复记录三种方法

    比如现在有一人员表 (表名:peosons) 若想将姓名、身份证号、住址这三个字段完全相同的记录...几个删除重复记录的SQL语句 1.用rowid方法 2.用group by方法 3.用distinct方法 1。用rowid方法 据据oracle带的rowid属

    解析Oracle中多表级联删除的方法

    于是实验了几种解决的办法,现小结一下。方法一:创建约束时设定级联删除(但一般由于各种原因或出于各种考虑在创建数据库时没有设定级联删除)SQL语句: 代码如下:CREATE TABLE “U_WEN_BOOK”.”FARTAB” (“FAR_...

    Oracle课件.pdf

    6.4表分区的几种类型及操作方法 6.5有关表分区的一些维护性操作 第5章 PL/SQL程序设计 1. PL/SQL简介 2. PL/SQL基础 2.1声明 2.2条件控制 2.3循环控制 2.4游标 2.5动态SQL 3.创建存储过程 4.创建自定义...

    Oracle11g从入门到精通2

    10.7 几种备份与恢复方法的比较 第11章 控制文件及日志文件的管理 11.1 控制文件 11.1.1 控制文件概述 11.1.2 多路复用控制文件 11.1.3 控制文件的创建 11.1.4 控制文件的备份与恢复 11.1.5 控制文件...

    Oracle数据库学习指南

    30.删除表内重复记录的方法 31.数据库安全性策略 32.数据库的查询优化技术. 33.提高C-S系统性能的一些方法 34.提高ORACLE数据库系统import性能 35.外部联接的用法 36.性能调试的一般问题 37.优化 38...

    ORACLE表空间恢复方案

    主要描述几种方式下得数据恢复 一)用户表空间    错误: 在启动数据库时出现ORA-01157,ORA-01110或操作系统级错误例如ORA-07360, 在关闭数据库(使用shutdown normal或shutdown immediate) 时将导致错误ORA -01116...

    Oracle数据库客户端管理器part4

    因要从客户端管理Oracle数据库,从网上找了N种方法,不是太麻 烦,就是不好用。经过几个不眠之夜,终于搞定一套组合:Oracle in stantclient 11.2+PLSQL Developer8.0.4 绿色中文破解版。姑且命 名为:Oracle数据库...

    Oracle11g从入门到精通

    10.7 几种备份与恢复方法的比较 第11章 控制文件及日志文件的管理 11.1 控制文件 11.1.1 控制文件概述 11.1.2 多路复用控制文件 11.1.3 控制文件的创建 11.1.4 控制文件的备份与恢复 11.1.5 控制文件的查询...

Global site tag (gtag.js) - Google Analytics