关于oracle里面delete,trancate,drop的区别和用法。详细点。谢谢

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于oracle里面delete,trancate,drop的区别和用法。详细点。谢谢相关的知识,希望对你有一定的参考价值。

关于oracle里面delete,trancate,drop的区别和用法。详细点。谢谢
我要做PPT咯。麻烦各位高手解救下。

1、首先复制一张表成3张复制表,分别对3张复制表进行drop、delete、truncate语句的操作,如图。

2、语句运行结果,如图只要delete有影响条数其他没有。

3、然后再来看表会发现执行drop表被删除了,如图。

4、然后打开表查看表数据可以看出TRUNCATE是清空表数据,delete是删除指定的条件数据,如图。

5、还要就是表设计中的自增值的不同,TRUNCATE执行的表自增又从1开了,还有就是delete的数据可以回滚还原,TRUNCATE的不可以,如图。

参考技术A delete:属于DML语句,删除数据库中指定条件的数据,相应语法:
DELETE table WHERE a = b;
执行该语句后,需要使用commit进行提交才能反映到数据库中

TRUNCATE:(不是trancate)属于DDL语句,快速的删除指定表的所有数据,
TRUNCATE在各种表上无论是大的还是小的都非常快,同其它DDL语句一样,都显示的有提交操作,因此,执行之后是无法进行回滚操作的。TRUNCATE将重新设置高水平线和所有的索引。在对整个表和索引进行完全浏览时,经过TRUNCATE操作后的表比Delete操作后的表要快得多。TRUNCATE不能触发任何Delete触发器。当表被清空后表和表的索引将重新设置成初始大小,而delete则不能。
语法:TRUNCATE TABLE 表名

DROP:属于DDL语句,作用是删除整个表、删除指定的用户、删除指定的存储空间等等
语法:
drop table table_name [cascade constraint]
drop user user_name [cascade]
drop tablespace tablespace_name including content and datafiles本回答被提问者采纳
参考技术B delete 和 truncate 是删除表中数据,但delete 与 truncate 的最大区别是 delete 删除数据后不释放内存,而trancate会释放内存
delete 是dml(数据控制语言) delete 删除数据后,需加commit提交事务后才能生效。 truncate 是ddl(数据定义语言)
drop是清除表

用法:delete from tabname
truncate table tabname
drop table tabname
参考技术C delete 是对表中的数据操作,删除表中的记录
trancate 也是删除表中的记录,但是它不调用触发器,速度比较快

drop 的话是完全把表给删除(当然不一定只是表,还有很多其他对象,像序列,INDEX...)

以上是关于关于oracle里面delete,trancate,drop的区别和用法。详细点。谢谢的主要内容,如果未能解决你的问题,请参考以下文章

用delete和trancate删除表记录的区别

trancate需要提交事物吗

记录mysql trancate 重置id自增

oracle 关于表数据delete 后如何恢复

redis在php中的应用(Trancation篇)

[转]关于delete释放表存储空间的中度研究