不光将表结构删除掉,同时表中的数据也删除掉,释放表空间
清空表,表示清空表中的所有数据,但是表结构保留。
一张表,表中的数据全部都不想要了,问此时是应该使用TRUNCATE TABLE还是使用DELETE FROM? why?
首先这两个操作都可以实现表数据的全部删除。TRUNCATE TABLE不能实现回滚,使用DELETE FROM可以实现回滚。以回滚和不能回滚为代表就是该操作后台占用资源的多少;
TRUNCATE TABLE每一次清除表数据后根本不考虑是否要进行回滚,该操作默认就是不能回滚的,所以在数据删除的同时不会进行备份,所以使用的系统资源和事务日志资源比较少;DELETE FROM一边删除,一边还得考虑回滚,数据删除的同时要进行备份,以防用户进行回滚操作,所以使用的系统资源和事务日志资源比较多。所以从资源使用上来说TRUNCATE TABLE是优于DELETE FROM的,更加节省资源。但是实际开发场景中使用TRUNCATE TABLE是极有可能造成事故的,在一张表没有做备份的情况下使用TRUNCATE TABLE是真的就没有的,所以和造成事故相比,占用点资源是小事。所以实际开发中使用DELETE FROM 更为稳妥。
由于departments表不在数据库test01_office里面,所以需要指明表的来源