oracle数据库删除数据Delete语句和Truncate语句的使用比较

oracle数据库删除数据Delete语句和Truncate语句的使用比较,第1张

当表中的数据不需要时 则应该删除该数据并释放所占用的空间 删除表中的数据可以使用Delete语句或者Truncate语句 下面分别介绍 一 delete语句 ( )有条件删除 语法格式 delete [from] table_name [where condition]; 如 删除users表中的userid为 的数据 delete from users where userid= ; ( )无条件删除整个表数据 语法格式 delete table_name; 如 删除user表中的所有数据 delete users ; 二 Truncate语句 使用Truncate语句是删除表中的所有记录 语法格式 Truncate [table] table_name; ( )删除所有记录不保留记录占用空间 Truncate [table] table_name [drop storage]; 如 删除users表中的所有数据并不保存占用空间 Truncate table users drop storage; 由于默认使用drop storage关键字 所以可以省略 drop storage; ( )删除所有记录保留记录占用空间 Truncate [table] table_name [reuse storage]; 如 删除users表中的所有数据并保存占用空间 Truncate table users reuse storage; 三 两种删除语句的对比 由于delete语句删除记录时候 记录是逐条删除的 而Truncate 语句删除数据时不产生回退信息 所以如果需要删除大量数据的时候使用delete则占用较多的系统资源 而如果使用Truncate 则会快的多 下面通过实例说明一下 首先建立user表 create table users ( userid varchar ( ) username varchar ( ) userpass varchar ( ) );复制代码 接着插入一条数据 insert into users values( GavinDream ); 使用复制插入方法插入几万条数据 insert into users(userid username userpass) select from users;我插入了 条数据 使用delete删除花费时间为 seconds 然后又插入了二倍的数据 但使用truncate花费时间仅仅为 seconds 如下图所示 lishixinzhi/Article/program/Oracle/201405/30860

首先用oui删除数据库,然后用oui卸载数据库软件,接着就是后续处理

1关闭oracle所有的服务。可以在windows的服务管理器中关闭;

2打开注册表:regedit 打开路径:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\

删除该路径下的所有以oracle开始的服务名称

3打开注册表,找到路径:

HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE 删除该oracle目录

4删除注册的oracle事件日志,打开注册表

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application

删除注册表的以oracle开头的所有项目。

5删除环境变量path中关于oracle的内容。

鼠标右键右单击“我的电脑-->属性-->高级-->环境变量-->PATH 变量。

删除Oracle在该值中的内容。注意:path中记录着一堆 *** 作系统的目录,在windows中各个目录之间使用分号(;)隔开的,删除时注意。

建议:删除PATH环境变量中关于Oracle的值时,将该值全部拷贝到文本编辑器中,找到对应的Oracle的值,删除后,再拷贝修改的串,粘贴到PATH环境变量中,这样相对而言比较安全。

6重新启动 *** 作系统。

以上1~5个步骤 *** 作完毕后,重新启动 *** 作系统。

7重启 *** 作系统后各种Oracle相关的进程都不会加载了。这时删除Oracle_Home下的所有数据。(Oracle_Home指Oracle程序的安装目录)

8删除C:\Program Files下oracle目录。 (该目录视Oracle安装所在路径而定)

9删除开始菜单下oracle项,如: C:\Documents and Settings\All Users\「开始」菜单\程序\Oracle

- Ora10g 不同的安装这个目录稍有不同。

怎么删除oracle表中的全部数据

删除表内容的两种方法

truncate table 表名;

delete from 表名 where 条件;

两种方法的区别:

truncate,意思为截断表,能够不占用资源的全部删除表,优点是速度快,缺点是删除不能恢复,不能按条件删除。

delete,意思为删除,此 *** 作占用redolog,优点能够快速恢复和选择删除,缺点是删除慢,大批量的删除不建议使用。

删除表的数据有很多种方法,如果是只删除某一特定的部分,用delete语句

delete from 表名 where 条件;

如果是全表删除可以用delete和truncate

delete from 表名;

或者用

truncate table 表名;

二者都能达到清空表的目的,区别是delete 记录日志,速度比较慢,不会回收空间,可以恢复

truncate速度快,不急了日志,回收分配的空间,不可恢复

如果是分区表,还可以对分区进行 *** 作

删除数据库的表,关键点不在删除的 *** 作,而是在授权 *** 作删除。

为什么要删除?谁让删除的?这些都要形成文字的相关内容,不然在生产系统中,如果你是最后 *** 作的,那么板子只能打到你身上。

至于删除的语句很简单,最好用表所属于的用户登陆,然后drop table tablename;就可以了。

这样删除有一个好处,就是表在该用户的回收站(10g版本以及以后)中,如果想恢复还有办法。但是如果加了purge这个参数,那么你想恢复都没有办法了。(除非有备份)

oracle回收站的恢复方式:flashback table tablename to before drop;如果该用户没有flashback的权限,那么可以考虑以dba身份的用户登陆。

查看回收站的表,本用户登陆sqlplus连接,show recyclebin;

以上就是关于oracle数据库删除数据Delete语句和Truncate语句的使用比较全部的内容,包括:oracle数据库删除数据Delete语句和Truncate语句的使用比较、如何彻底删除oracle数据库、怎么删除oracle表中的全部数据等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/9721701.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存