小肥羊要进步

数据库中 删除表用哪个delete,drop,truncate?

因为要测试是否可以数据库重新生成一个表,要删除掉原来的表, 数据库删除有delete,truncate,drop,菜鸟上查了区别,记录于此:

  • drop test; 删除表test,并释放空间,将test删除的一干二净
  • truncate test;删除表的内容,并释放空间,但不删除表的定义,表的结构还在
  • delete删除指定数据 delete from test where age=30 and country='US';
  • delete删除整个表内的内容,保留表的定义,不释放空间
  • delete * from test ;

delete,drop,truncate 都有删除表的作用,区别在于:

  •  1、delete 和 truncate 仅仅删除表数据,drop 连表数据和表结构一起删除,打个比方,delete 是单杀,truncate 是团灭,drop 是把电脑摔了。
  •  2、delete 是 DML 语句,操作完以后如果没有不想提交事务还可以回滚,truncate 和 drop 是 DDL 语句,操作完马上生效,不能回滚,打个比方,delete 是发微信说分手,后悔还可以撤回,truncate 和 drop 是直接扇耳光说滚,不能反悔。
  •  3、执行的速度上,drop>truncate>delete,打个比方,drop 是神舟火箭,truncate 是和谐号动车,delete 是自行车。

posted on 2020-08-12 16:13  小肥羊要进步  阅读(735)  评论(0编辑  收藏  举报

导航