相同点,使用drop delete truncate 都会删除表中的内容
drop table 表名
delete from 表名(后面不跟where语句,则也删除表中所有的数据)
truncate table 表名
区别
首先delete 属于DML,当不commit时时不生效的
而truncate 和 drop 则是直接生效的,不能回滚。
truncate 和 delete 不删除表的结构,只是针对表中的内容删除
drop语句将删除表的结构,被依赖的约束(constrain),触发器(trigger),索引(index); 依赖于该表的存储过程/函数将保留,但是变为invalid状态.
truncate 会释放占用空间,而drop 和 delete不会。
速度:drop>truncate>dalete
综上所述,可以得到一个问题,使用drop 和 truncate相对delete是危险的,当使用drop 和 truncate 时不能回滚。delete相对安全,可以回滚,并且commit以后才会提交,并且不会删除表结构,也不会释放表所占用的空间。
修改表名的方法
rename 旧表名 to 新表名。
转自:http://zhengweiit.blog.51cto.com/1109863/514860
drop table 表名
delete from 表名(后面不跟where语句,则也删除表中所有的数据)
truncate table 表名
区别
首先delete 属于DML,当不commit时时不生效的
而truncate 和 drop 则是直接生效的,不能回滚。
truncate 和 delete 不删除表的结构,只是针对表中的内容删除
drop语句将删除表的结构,被依赖的约束(constrain),触发器(trigger),索引(index); 依赖于该表的存储过程/函数将保留,但是变为invalid状态.
truncate 会释放占用空间,而drop 和 delete不会。
速度:drop>truncate>dalete
综上所述,可以得到一个问题,使用drop 和 truncate相对delete是危险的,当使用drop 和 truncate 时不能回滚。delete相对安全,可以回滚,并且commit以后才会提交,并且不会删除表结构,也不会释放表所占用的空间。
修改表名的方法
rename 旧表名 to 新表名。
转自:http://zhengweiit.blog.51cto.com/1109863/514860
发表评论
-
oracle10g完全缷载略记
2016-07-09 15:14 850软件环境: 1、Windows7 + Oracle 10g ... -
MySQL zip版的简单安装方式
2016-06-25 17:56 813Windows下MySQL zip版的简单安装 1、下载My ... -
关系型数据库三范式解释
2016-04-07 11:54 1283数据库 三范式最简单最易记的解释,整理一下方便大家记忆。 书上 ... -
oracle中的视图详解及实例
2015-03-26 16:42 17291.创建用户并授权: cre ... -
plsql快捷键设置
2015-01-19 14:15 24541.使用PL/SQL中经常性需要输入select * fro ... -
database link问题解决
2015-01-15 15:00 6676Oracle数据库中关于databas ... -
Oracle10g创建Database link
2015-01-14 10:53 979Oracle10g创建Database link ... -
union和union all的区别
2014-12-29 16:20 1330Union因为要进行重复值扫描,所以效率低。如果合并没有刻意要 ... -
oracle数据库导入导出
2014-11-04 11:33 831oracle数据库导入导出(导出为dmp格式) 一、数据导出: ... -
Oracle中decode函数用法
2014-10-24 10:40 1228含义解释: decode(条件,值1,返回值1,值2 ... -
db语句优划与用法相关
2014-09-19 17:01 6881. oracle 中的not in() 与not exist ... -
oracle 临时表空间 和数据表空间
2014-08-25 13:28 935Oracle临时表空间主要用来做查询和存放一些缓冲区数据。临 ... -
--Oracle 删除用户和表空间
2014-08-25 11:40 2494--查看oracle所有的表空间 select dbf.tab ... -
Oracle trunc()函数的用法 to_date()
2014-07-01 14:24 1427Oracle trunc()函数的用法 --Oracle ... -
sql执行顺序
2014-06-17 21:06 865在查询中逻辑查询和 ... -
监听listener oracle 错误 1067:进程意外终止
2014-05-15 19:20 1624监听listener oracle 错误 1067:进程意外终 ... -
jdbc properties文件配置
2014-05-05 21:33 1365前言 JDBC(Java Data Base Connecti ... -
PLSQL 创建表空间和用户
2014-03-14 18:09 3546通过pl/sql登录到Oracle数据库上,然后执行菜单:文件 ... -
oracle表创建序列创建触发器创建
2014-02-27 11:33 1234// 创建一个序列 CREATE SEQUENCE Car_G ... -
oracle打开关闭服务批处理
2014-02-26 09:29 836@echo off echo 正在启动oracle服务,请稍等 ...
相关推荐
SQL语句中----删除表数据drop、truncate和delete的用法,对你爱不完
Delete 语句和 Truncate 语句都是 Oracle 数据库中删除数据的方法,但是它们之间存在着明显的差异。在删除大量数据时,Truncate 语句的速度较快,但是 Delete 语句可以根据条件删除数据,并且可以回退删除操作。因此...
### 利用Oracle系统触发器防止误删除表操作 #### 背景介绍 在企业级应用中,数据库的安全性和稳定性至关重要。Oracle作为一款广泛使用的数据库管理系统,提供了丰富的功能来保障数据安全。其中,系统触发器是Oracle...
详细阐述了Oracle中三种删除的方式truncate,drop和delete三者的区别和联系.
"Oracle定时删除表空间的数据并释放表空间" Oracle数据库定时删除表空间的数据并释放表空间是通过创建存储过程和定时任务来实现的。下面详细讲解该知识点: 一、创建存储过程 首先,需要创建一个存储过程来删除...
尽管`drop`、`truncate`和`delete`都是DDL或DML操作,但在Oracle中,仍有可能恢复已删除的数据或表: - **drop操作**:如果Oracle的回收站功能被启用,则可以通过回收站恢复已删除的表。需要注意的是,这取决于表...
在Oracle数据库中,删除表中数据有两种主要方式:Delete语句和Truncate语句。两者在功能上相似,但有着显著的区别,适用于不同的场景。 **Delete语句** Delete语句是一种灵活的数据删除方式,它可以有条件地删除...
### Oracle数据库删除表中重复记录的方法 在Oracle数据库管理中,经常会遇到需要处理表中的重复数据的情况。重复数据不仅会占用不必要的存储空间,还可能导致数据统计错误或业务逻辑混乱等问题。因此,掌握如何有效...
根据提供的文件信息,本文将详细解释Oracle数据库中的删除操作,包括DELETE、DROP以及TRUNCATE三个主要命令。这些命令在数据库管理中极为重要,能够帮助我们有效地管理数据表中的记录或整个表结构。 ### Oracle删除...
然而,Oracle不支持直接为用户授予针对单个表的`TRUNCATE`权限,而是通常将更广泛的`DROP ANY TABLE`权限赋予用户,但这可能会带来安全隐患。本文将探讨两种实现为用户授权`TRUNCATE TABLE`的方案,以确保安全性和可...
Oracle 在删除表时,没有直接清空表所占的块,而是把这些已删除的表的信息放到了一个虚拟容器“回收站”中,而只是对该表的数据块做了可以被覆写的标志。 可以直接查询这个“回收站”或者查询 user_table 视图来...
- **原理**:当使用`DROP`命令删除表后,Oracle并没有立即清除表占用的空间,而是将其放入了一个特殊的区域——回收站中,直到这些空间被新的数据覆盖。 - **查询回收站**:可以通过查询`USER_TABLES`视图或`USER_...
当表被DROP后,如果没有立即被其他数据覆盖,Oracle会将其放置在**回收站**(Recycle Bin)中,这使得用户可以在一定时间内恢复被删除的表。 #### 三、误删除数据的具体恢复方法 ##### 3.1 DELETE误删除的恢复方法 ...
- **TRUNCATE TABLE**:与`DELETE`不同,`TRUNCATE`命令会删除表中的所有数据,但保留表结构。此操作不支持回滚,且速度更快。然而,它不会释放表空间,除非使用`ALTER TABLE ... DEALLOCATE UNUSED`命令。 2. **...
Oracle 10g还支持使用`TRUNCATE TABLE`语句,它用于删除表中的所有数据,但保留表结构。与`DELETE`不同,`TRUNCATE`不记录任何删除操作,因此速度更快,但同样不可逆。若需删除表而保留其结构,可以使用`TRUNCATE ...
如果你只是想删除表中的所有数据但保留表结构,可以使用`TRUNCATE TABLE`命令。这比`DELETE`命令更快,因为`TRUNCATE`不记录任何删除操作,但请注意,`TRUNCATE`不支持事务回滚,且无法用于有外键约束的表。要释放表...
以上介绍了两种在Oracle数据库中删除重复记录的方法。第一种方法适用于数据量较小的情况,第二种方法则更适合处理大数据量的场景。实际应用时,可以根据具体情况选择合适的方法。需要注意的是,在进行删除操作之前...