手机网站设计要求,重庆建设工程安全协会网站,如何编写html网页,长沙做一个网站多少钱两者都可以删除表中的数据#xff0c;但是本质上是有区别的#xff0c;两者使用方法如下#xff1a;
--删除表中所有数据
DELETE FROM table_name;
--删除表中部分符合条件的数据
DELETE FROM table_name WHERE 【】;--删除表中所有数据
TRUNACTE TABLE table_name;1、SQL语… 两者都可以删除表中的数据但是本质上是有区别的两者使用方法如下
--删除表中所有数据
DELETE FROM table_name;
--删除表中部分符合条件的数据
DELETE FROM table_name WHERE 【】;--删除表中所有数据
TRUNACTE TABLE table_name;1、SQL语言上的区别
delete属于 DML(数据操作语言) 范畴truncate属于 DDL(数据定义语言) 范畴
2、操作对象不同 delete操作对象是表中的每行数据属于行级别。可以通过在后面添加where条件删除部分数据。truncate操作对象是表不能加where条件一执行就是删除了整个表。 3、是否会释放空间和能否回滚 delete删除的行数据是不释放空间的每删除一行数据就在事务日志中为删除的那行数据做一项记录因此可对delete操作进行回滚roll back如果表id是递增式的话那么表数据的id就可能不是连续的truncate是通过释放存储表数据所用的数据页来删除数据并且只在事务日志中记录页的释放所以删除不能回滚。 4、删除效率 delete逻辑删除走事务有binlog记录必然效率慢truncate物理删除直接删除存储数据的数据页不走事务没有日志记录必然快。 5、外检约束 delete可以通过sql语句根据外键有序的删除本表和相关表中的数据。比如删除部门表中的数据也可以吧用户表中的数据关联删除。truncate存在外键约束则删除失败。比如员工表关联了部门表即使员工表中没有数据只要外键关联存在部门表就删不掉。 6、使用场景 慎用、慎用 truncate删除一些备份表和测试表也要慎用别写错表名了。