delete
delete 属于数据库操纵语言DML,表示删除表中的数据。
DELETE语句执行删除的过程是每次从表中删除一行,并且同时将该行的删除操作作为事务记录在日志中保存以便进行进行回滚操作。
delete 既可以对table也可以对view,可以全部删除,也可以按条件删除。
语法:
– 删除表中全部数据
delete from 表名
– 按条件删除
delete from 表名 where 条件
drop
drop 属于数据库定义语言DDL,表示删除表, 也可以用来删除数据库。
语法:
– 删除 表
drop table 表名
– 删除数据库
drop database 数据库名
使用 DROP 删除一个表,然后创建一个同名的表,也可以达到清空表的效果。例如,下面的语句先删除 employe 表,之后再重新创建。
DROP TABLE EMPLOYEE;
CREATE TABLE EMPLOYEE(…);
当删除和重新创建表时,所有与之相关联的索引、完整性约束和触发器也被删除。同样,所有针对被删除表的授权也会被删除。
truncate
truncate 属于数据库定义语言DDL,表示删除表中所有数据。
truncate 只能对table,执行速度快
语法:
– 删除表中所有数据且不可恢复
truncate table 表名
相同点
1.truncate和不带where子句的delete、以及drop都会删除表内的数据。
2.drop、truncate都是DDL语句(数据定义语言),执行后会自动提交。
区别
1.执行速度,一般来说: drop> truncate > delete
2.delete是DML语句,不会自动提交。drop/truncate都是DDL语句,执行后会自动提交
3.TRUNCATE 和DELETE只删除数据, DROP则删除整个表(结构和数据)
4.truncate、drop是DLL,操作立即生效,原数据不放到 rollback segment中,不能回滚,delete可以回滚
5.对于由 FOREIGN KEY 约束引用的表,不能使用 TRUNCATE TABLE,而应使用不带 WHERE 子句的 DELETE 语句。由于 TRUNCATE TABLE 不记录在日志中,所以它不能激活触发器。
6.TRUNCATE TABLE 不能用于参与了索引视图的表。
更多资讯请上达梦技术社区了解: https://eco.dameng.com
今天的文章 delete、drop和truncate的用法与区别(一看就懂)分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ji-chu/83535.html