SQL中delete,drop,truncate区别

drop,truncate,delete都可以删除表内容,要想很清楚地区分这几个区别,要从下面几点入手:

1.  语言

DROP:         属于DDL语言;

TRUNCATE:属于DDL语言;

DELETE:      属于DML语言。

2.  删除对象

DLELTE:         删除表中一条或多条记录,只删除记录保留表的结构(删除的是记录);

TRUNCATE:   删除表中所有的记录,也是只删除记录保留表的结构(删除的是记录);

DROP:            删除的是整个表,包括表中的记录和表的结构(删除的是表)。

3.应用范围

TRUNCATE :  删除表(table);         

DELETE:        删除表(table)和视图(view);

DROP:            删除表(table)和视图(view)

4.释放空间

DELETE:         删除记录后,不会减少表所占的空间;

TRUNCATE:   删除表后,表所占的空间可以恢复到初始大小;

DROP:            删除表后,所占的空间全部被释放

5.提交事务

DELETE:      将删除操作作为事务记录在日志中保存以便进行回滚操作(DELETE属于DML语言,需要显示提交,也就是手动提交)。

TRUNCATE: 不把删除操作记录记入日志保存,删除的记录是不能恢复的(之所以不能恢复,是因为DDL语言会隐性提交,提交完就不可以进行回滚操作了)。

DROP:           删除的表不能够进行回滚操作(同样是因为DDL语言,隐性提交)。

6.运行速度

在速度上,一般来说,drop> truncate > delete。

  • 1
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值