zoukankan      html  css  js  c++  java
  • 数据库中 删除表用哪个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 是自行车。
  • 相关阅读:
    守卫者的挑战
    黑魔法师之门
    noip2015 普及组
    noip2015 提高组day1、day2
    40026118素数的个数
    高精度模板
    经典背包系列问题
    修篱笆
    [LintCode] Linked List Cycle
    [LintCode] Merge Two Sorted Lists
  • 原文地址:https://www.cnblogs.com/JacquelineQA/p/13491173.html
Copyright © 2011-2022 走看看