oracle删除表

https://blog.csdn.net/qq_40087415/article/details/78812019

删除表(记录和结构)的语名: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 列名

原文地址:https://www.cnblogs.com/6xiaoxian9/p/12122940.html

时间: 2025-01-14 18:47:59

oracle删除表的相关文章

Oracle删除表、字段之前判断表、字段是否存在

这篇文章主要介绍了Oracle删除表.字段之前判断表.字段是否存在的相关资料,需要的朋友可以参考下 在Oracle中若删除一个不存在的表,如 “DROP TABLE tableName”,则会提示: ORA-00942:表或视图不存在 若在程序中执行该语句则会报异常,这就需要我们在删除表前先判断该表是否存在,若存在则删除. ? 1 2 3 4 5 6 7 8 9 10 11 DECLARE num NUMBER; BEGIN SELECT COUNT(1) INTO num FROM USER_

Oracle删除表的几种方法

drop table books;的指令会将表放到回收站里, 用   flashback table "BIN$1Oiy3qm/QJubov1BwBUOgw==$0" to before drop;  就能恢复. 删除表:   drop table books purge;是绕过回收站,彻底删除    建议你先   purge recyclebin; 清除当前用户的回收站,不会影响其他用户的回收站  或者   purge table 表名: 清除回收站内指定的表 正文:  删除表(记录

oracle删除表字段和oracle表增加字段

这篇文章主要介绍了oracle表增加字段.删除表字段修改表字段的使用方法,大家参考使用吧 添加字段的语法:alter table tablename add (column datatype [default value][null/not null],….); 修改字段的语法:alter table tablename modify (column datatype [default value][null/not null],….); 删除字段的语法:alter table tablenam

oracle删除表数据的两种的方式

转自:https://blog.csdn.net/qq_37840993/article/details/82490787 平时写sql中我们都会用到删除语句,而平时删除表数据的时候我们经常会用到两种方式: 在oracle中,truncate.delete都可以删除表数据,具体的区别以及sql语法如下: truncate table [表名]; delete from [表名]; delete与truncate的区别:delete:会产生rollback,如果删除大数据量的表速度会很慢,而且同时

oracle 删除表空间及数据文件方法

drop tablespace tablespace_name;--删除非空表空间,但是不包含物理文件drop tablespace tablespace_name including contents;--删除空表空间,包含物理文件drop tablespace tablespace_name including datafiles;--删除非空表空间,包含物理文件drop tablespace tablespace_name including contents and datafiles;

Oracle 删除表分区

删除表分区(drop partition)    删除表分区包含两种操作,分别是:   Ø 删除分区:alter table [tbname] drop partition [ptname]; Ø 删除子分区:alter table [tbname] drop subpartition [ptname];   除hash分区和hash子分区外,其它的分区格式都可以支持这项操作.   例如,删除分区: JSSWEB> select table_name,partition_name   2  fr

oracle删除表的方式

当表中的数据不需要时,则应该删除该数据并释放所占用的空间,删除表中的数据可以使用Delete语句或者Truncate语句,下面分别介绍. 一.delete语句 (1)有条件删除    语法格式:delete [from]  table_name  [where condition]; 如:删除users表中的userid为‘001’的数据:delete from users where userid='001'; (2)无条件删除整个表数据 语法格式:delete  table_name; 如:

oracle 删除表、数据

truncate ddl语句,删除表中数据,速度要比delete快:且所有自增字段重新开始计数:删除数据保留表结构:删除的数据不进入rollback segment,无法恢复.例: truncate table emp_tmp; drop    ddl语句,删除和该表相关的所有信息,包括表结构.数据. delete    dml语句,删除表中数据,但是并不删除表结构.

oracle 删除表找回

表版本和闪回功能 用户可能会经常多次创建和删除同一个表,如: CREATE TABLE TEST (COL1 NUMBER); INSERT INTO TEST VALUES (1); commit; DROP TABLE TEST; CREATE TABLE TEST (COL1 NUMBER); INSERT INTO TEST VALUES (2); commit; DROP TABLE TEST; CREATE TABLE TEST (COL1 NUMBER); INSERT INTO