首页技术delete语句详解 delete语句删除表中数据

delete语句详解 delete语句删除表中数据

编程之家2026-06-241116次浏览

其实delete语句详解的问题并不复杂,但是又很多的朋友都不太了解delete语句删除表中数据,因此呢,今天小编就来为大家分享delete语句详解的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!

delete语句详解 delete语句删除表中数据

详解SQL中drop,delete和truncate的异同

第一:相同点:

truncate和不带where子句的delete,以及drop

都会删除表内的数据

第二:不同点:

1.

truncate和delete只删除数据不删除表的结构(定义)

delete语句详解 delete语句删除表中数据

drop

语句将删除表的结构被依赖的约束(constrain)、触发器(trigger)、索引(index);依赖于该表的存储过程/函数将保留,但是变为

invalid

状态。

2.

delete

delete语句详解 delete语句删除表中数据

语句是数据库操作语言(dml),这个操作会放到

rollback

segement

中,事务提交之后才生效;如果有相应的trigger执行的时候将被触发。

truncate、drop

是数据库定义语言(ddl),操作立即生效,原数据不放到rollback

segment中,不能回滚,操作不触发

trigger。

3.delete

语句不影响表所占用的extent,高水线(high

watermark)保持原位置不动;

显然drop

语句将表所占用的空间全部释放;

truncate

语句缺省情况下见空间释放到

minextents个

extent,除非使用reuse

storage;truncate

会将高水线复位(回到最开始)。

4.速度:一般来说:

drop>

truncate

>

delete

5.安全性:小心使用

drop

truncate,尤其没有备份的时候.,否则哭都来不及。

6.使用上:想删除部分数据行用delete,注意带上where子句.

回滚段要足够大。

想删除表,当然用drop。

想保留表而将所有数据删除,如果和事务无关,用truncate即可;如果和事务有关,或者想触发trigger,还是用delete。

如果是整理表内部的碎片,可以用truncate跟上reuse

stroage,再重新导入/插入数据。

Truncate用法详解

前言:

当我们想要清空某张表时,往往会使用truncate语句。大多时候我们只关心能否满足需求,而不去想这类语句的使用场景及注意事项。本篇文章主要介绍truncate语句的使用方法及注意事项。

truncate的作用是清空表或者说是截断表,只能作用于表。truncate的语法很简单,后面直接跟表名即可,例如: truncate table tbl_name或者 truncate tbl_name。

执行truncate语句需要拥有表的drop权限,从逻辑上讲,truncate table类似于delete删除所有行的语句或drop table然后再create table语句的组合。为了实现高性能,它绕过了删除数据的DML方法,因此,它不能回滚。尽管truncate table与delete相似,但它被分类为DDL语句而不是DML语句。

上面说过truncate与delete,drop很相似,其实这三者还是与很大的不同的,下面简单对比下三者的异同。

通过前面介绍,我们很容易得出truncate语句的使用场景,即该表数据完全不需要时可以用truncate。如果想删除部分数据用delete,注意带上where子句;如果想删除表,当然用drop;如果想保留表而将所有数据删除且和事务无关,用truncate即可;如果和事务有关,或者想触发trigger,还是用delete;如果是整理表内部的碎片,可以用truncate然后再重新插入数据。

无论怎样,truncate表都是高危操作,特别是在生产环境要更加小心,下面列出几点注意事项,希望大家使用时可以做下参考。

好了,文章到这里就结束啦,如果本次分享的delete语句详解和delete语句删除表中数据问题对您有所帮助,还望关注下本站哦!

php web应用开发,python做web开发ai相机app?现在ai相机排名前十有那些