删除表操作——drop、truncate和delete用法详解

一、基本语法

   1、drop table 表名称                         eg: drop table  test;  --test为表名,下同
   2、truncate table 表名称                     eg: truncate  table test;                 
   3、delete from 表名称 where 列名称 = 值      eg: delete from test;或delete test where name='zhangsan';

二、drop,truncate,delete区别

    1、drop (删除表):删除内容和定义,释放空间。简单来说就是把整个表去掉

    2、truncate (清空表中的数据):删除内容、释放空间但不删除定义(保留表的数据结构)。与drop不同的是,他只是清空表数据而已。

    至于释放空间,看下下面两幅图,你们就会明白的:

    

   上图:Id列标识列,因之前delete过行数据,所以会出现标识列不连续(体现了delete删除是不释放空间的);

    经过truncate table Teacher之后 再新增三条数据

    

   上图:同样Id是标识列,发现插入数据的时候,标识列连续了(体现了truncate删除是释放空间)。

    注意:truncate 不能删除行数据,要删就要把表清空。

    3、delete (删除表中的数据):delete 语句用于删除表中的行。delete语句执行删除的过程是每次从表中删除一行,并且同时将该行的删除操作作为事务记录在日志中保存,以便进行进行rollback操作。

   4、执行速度,一般来说: drop> truncate > delete。

    truncate 是一个DDL语言,向其他所有的DDL语言一样,他将被隐式提交,不能对truncate 使用rollback命令。 

附:rollback就是数据库里做修改后 (update,insert,delete)未commit 之前,使用rollback可以恢复数据到修改之前。

参考链接:https://www.cnblogs.com/huangjzh/p/3947149.html

                  https://www.cnblogs.com/fjl0418/p/7929420.html

猜你喜欢

转载自blog.csdn.net/DFF1993/article/details/81632230
今日推荐