删除表操作——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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值