`

delete table 和 truncate table 详解

阅读更多

delete table 和 truncate table

 

使用delete语句删除数据的一般语法格式:

 

delete [from] {table_name、view_name} [where<search_condition>]

 

将表中的所有行数据删除,执行完后,发现表中的数据都删除了,但是表的结构什么都还在。

 

 

truncate

 

truncate table语句将删除指定表中所有数据,因此也称其为清除表数据语句,一般格式如下

 

truncate table name

 

由于truncate语句将删除表中的所有数据,且无法恢复。

 

TRUNCATE TABLE执行速度比DELETE块,且使用的系统和事务日志资源少。DELETE语句每次删除一行,

 

并在事务日志中为所删除的每行记录一项。而TRUNCATE TABLE通过释放存储表数据所用的数据页来删

 

除数据,并且只在事务日志中记录页的释放。

 

对于有外键约束引用的表,不能使用TRUNCATE TABLE删除数据,而应该使用不带WHERE子句的DELETE

 

语句。另外TRUNCATE TABLE也不能用于参与了索引视图的表。

分享到:
评论

相关推荐

    delete,truncate和drop的区别

    ### delete,truncate和drop的区别详解 #### 一、概述 在数据库管理中,经常会遇到需要删除数据或表的情况。为了确保数据的准确性和安全性,理解`delete`、`truncate`和`drop`这三个命令的区别至关重要。本文将详细...

    truncate,delete以及drop区别汇总

    `truncate`, `delete` 和 `drop` 是三种常见的 SQL 命令,它们在功能上有很大的差异。本文将详细探讨这三种命令之间的区别,并通过具体的场景分析来帮助读者更好地理解和使用这些命令。 #### 二、`truncate` 命令...

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

    7. **操作对象**:`TRUNCATE`仅适用于`TABLE`,而`DELETE`可以作用于`TABLE`和`VIEW`。 **更详细的区别:** - **日志记录**:`DELETE`操作会记录在重做日志中,允许在回滚段中进行回滚。`TRUNCATE`和`DROP`不记录...

    MySQL Truncate用法详解

    - Truncate只适用于表,而Delete和Drop可以作用于表、视图等数据库对象。 - Truncate清空表后保留表结构,但重置自增列的值;Delete删除数据但保留自增列状态;Drop则完全删除表及其依赖项。 - Truncate不触发与表...

    oracle数据操作和控制语言详解

    "Oracle 数据操作和控制语言详解" 本资源提供了 Oracle 数据操作和控制语言的详细解释,涵盖了 SQL 语言的四大类:数据查询语言 DQL,数据操纵语言 DML,数据定义语言 DDL,数据控制语言 DCL。文章着重介绍了 DML ...

    truncate 功能开发文档1

    【Cedar数据库Truncate功能详解】 Cedar是一个由华东师范大学数据工程与科学学院基于OceanBase 0.4.2版本研发的可扩展关系数据库。在Cedar 0.2版本中,尚未实现`TRUNCATE TABLE`语句,但在后续版本中为了满足特定...

    ZenCart常用SQL命令

    与使用`DELETE FROM`语句相比,`TRUNCATE TABLE`在执行效率上更高,因为它不涉及记录删除日志的操作,而是直接释放已分配的空间。 #### 四、总结 通过上述介绍可以看出,在ZenCart的二次开发过程中,合理使用SQL...

    SQL中的DELETE 语句使用详解.pdf

    当涉及到清空表中的数据时,`TRUNCATE TABLE`和`DELETE`语句都能完成这一任务,但它们在性能和使用场景上有所不同。 - **TRUNCATE TABLE**:该操作用于快速清空表中的所有行。它比不带`WHERE`子句的`DELETE`语句更...

    详解MySQL中DROP,TRUNCATE 和DELETE的区别实现mysql从零开始

    在MySQL数据库管理中,删除数据是一项常见的操作,但有三种不同的方法可以实现这一目标:DROP、TRUNCATE和DELETE。虽然它们都能删除数据,但各自的功能、效率和使用场景都有所区别。 首先,DELETE语句是一种数据...

    truncate 表恢复

    与`DELETE`命令不同的是,`TRUNCATE`不触发任何触发器也不记录回滚信息,因此执行速度更快。具体来说,`TRUNCATE`操作的原理在于它**并不会逐个清除用户数据块上的数据**,而是**仅重置数据字典和元数据块上的元数据...

    truncate 功能设计文档1

    《Cedar数据库Truncate功能设计详解》 在数据库管理领域,Truncate Table是一项常用的操作,它用于快速删除表中的所有数据,同时保留表结构。本文将深入探讨Cedar数据库中的Truncate功能设计,包括需求分析、适用...

    Oracle数据控制语句详解

    TRUNCATE TABLE my_table; ``` DCL 和 DML 之间的差异: - 性能:TRUNCATE 在大表上的执行速度远超 DELETE。 - 回滚:DELETE 可以被 ROLLBACK,而 TRUNCATE 不能。 - 索引:TRUNCATE 会重置表和索引的高水平线,...

    Oracle数据操作和控制语言详解

    这包括读取(SELECT)、写入(INSERT、UPDATE)、删除(DELETE)以及更高级的权限如创建表(CREATE TABLE)或备份数据(BACKUP DATABASE)。通过DCL,数据库管理员能够精细控制不同用户或角色对数据库的访问权限,...

    Oracle数据操作和控制语言详解[参照].pdf

    例如,`LOCK TABLE schema.table IN SHARE MODE`或`LOCK TABLE schema.table IN EXCLUSIVE MODE`分别实现共享锁和独占锁。 在使用这些语句时,需要注意的是,INSERT和UPDATE可能会触发与数据相关的触发器,而...

    Mysql考试题库及答案

    CREATE TABLE 用于创建新表,DROP TABLE 用于删除表,TRUNCATE TABLE 用于清空表中的所有数据。 #### 5. 添加新列到表中 **题目**: 在 MySQL 中,以下哪个命令可以添加一个新列到表中? **选项**: A. ADD COLUMN B....

    MySQL表的CRUD操作详解及实践案例

    最后Delete部分讨论了DELETE和TRUNCATE TABLE的区别及其各自的特点。文章还特别强调了复杂操作——插入子查询结果,以及如何利用聚合函数COUNT、SUM、AVG、MAX、MIN进行分组统计分析。 适合人群:对于MySQL有一定...

    oracle truncate恢复

    ### Oracle Truncate 恢复方法详解 #### 引言 在Oracle数据库管理过程中,有时会因为误操作导致表被`TRUNCATE`,这可能会造成数据丢失。幸运的是,Oracle Database Utilities (ODU) 提供了一种有效的手段来恢复被`...

    mysql表的清空、删除和修改操作详解

    不带where参数的delete语句可以删除mysql表中所有内容,使用truncate table也可以清空mysql表中所有内容。 效率上truncate比delete快,但truncate删除后不记录mysql日志,不可以恢复数据。 delete的效果有点像将...

Global site tag (gtag.js) - Google Analytics