Oracle删除数据的三种⽅式
Oracle 删除数据的三种⽅法
删除表(记录和结构)的语名delete ———— truncate ————drop
drop 命令
truncatedelete和drop的区别drop table 表名;
例如:删除学⽣表(student)
drop table student;
注意:
1. ⽤drop删除表数据,不但会删除表中的数据,连表结构也被删除了!
truncate 命令
truncate  table 表名;
例如:删除学⽣表(student)
truncate table student;
注意:
1. ⽤truncate删除表数据,只是删除表中的数据,表结构不会被删除!
2. 删除整个表的数据时,过程是系统⼀次性删除数据,效率⽐较⾼
3. truncate删除释放空间
delete 命令
delete table 表名;
例如:删除学⽣表(student)
delete table student;
注意:
1. ⽤delete删除表数据,只是删除表中的数据,表结构不会被删除!
2. 虽然也是删除整个表的数据,但是过程是系统⼀⾏⼀⾏地删,效率⽐truncate低
3. delete删除是不释放空间的
关于truncate的⼩⼩总结:
truncate table 在功能上与不带 WHERE ⼦句的 delete语句相同:⼆者均删除表中的全部⾏。
但 truncate ⽐ delete速度快,且使⽤的系统和事务⽇志资源少。
delete 语句每次删除⼀⾏,并在事务⽇志中为所删除的每⾏记录⼀项。所以可以对delete操作进⾏roll back。
1、truncate 在各种表上⽆论是⼤的还是⼩的都⾮常快。如果有ROLLBACK命令Delete将被撤销,⽽ truncate 则不会被撤销。
2、truncate 是⼀个DDL语⾔,向其他所有的DDL语⾔⼀样,他将被隐式提交,不能对 truncate 使⽤ROLLBACK命令。
3、truncate 将重新设置⾼⽔平线和所有的索引。在对整个表和索引进⾏完全浏览时,经过 truncate 操作后的表⽐Delete操作后的表要快得多。
4、truncate 不能触发任何Delete触发器。
5、当表被清空后表和表的索引讲重新设置成初始⼤⼩,⽽delete则不能。
6、不能清空⽗表

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。