`

mysql drop truncate delete

阅读更多
1. truncate和 delete只删除数据不删除表的结构(定义)
drop语句将删除表的结构被依赖的约束(constrain),触发器(trigger),索引(index); 依赖于该表的
存储过程/函数将保留,但是变为invalid状态.

2.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,尤其没有备份的时候.否则哭都来不及.
使用上,想删除部分数据行用delete,注意带上where子句. 回滚段要足够大.
想删除表,当然用drop
想保留表而将所有数据删除. 如果和事务无关,用truncate即可. 如果和事务有关,或者想触发trigger,还
是用delete.
如果是整理表内部的碎片,可以用truncate跟上reuse stroage,再重新导入/插入数据/


实际应用:
delete from table; //删除所有数据
truncate table; //将auto_increatement调制从0开始,实际就是从1开始
分享到:
评论

相关推荐

    浅析删除表的几种方法(delete、drop、truncate)

    您可能感兴趣的文章:数据库中删除语句Drop、Delete、Truncate的相同点和不同点的比较(实例说明)drop,truncate与delete的区别详解MySQL中DROP,TRUNCATE 和DELETE的区别实现mysql从零开始浅析drop user与delete from ...

    MySQL删除表操作实现(delete、truncate、drop的区别)

    本文主要讲mysql中三种删除表的操作,delete语句、truncate语句以及drop语句的区别: 简介 delete 1、删除整张表的数据: delete from table_name; 2、删除部分数据,添加where子句: delete from table_name ...

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

    在MySQL数据库管理中,删除数据是一项常见的操作,但有三种不同的方法可以实现这一目标:DROP、TRUNCATE和DELETE。理解它们之间的区别至关重要,因为它们各自具有不同的特性和使用场景。 1. **DROP命令**: - DROP...

    delete、truncate、drop的区别以及该如何选择

    前言 上周同事小姐姐问我:“哈哥你看,我发现...咱们常用的三种删除方式:通过 delete、truncate、drop 关键字进行删除;这三种都可以用来删除数据,但场景不同。 一、从执行速度上来说 drop > truncate >> DELETE 二

    MySQL Truncate用法详解

    2. Truncate与Drop、Delete的对比: - Truncate和Drop都是DDL语句,执行后立即生效,且不可通过回滚操作撤销。 - Delete是DML语句,可以在事务中使用,支持回滚。 - Truncate只适用于表,而Delete和Drop可以作用于表...

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

    在SQL中,`DROP`、`DELETE`和`TRUNCATE`都是用于处理表中数据的命令,但它们之间存在显著的区别。以下是这些命令的详细解释: 1. **相同点**: - 三者都能删除表内的数据。 - `TRUNCATE`和不带`WHERE`子句的`...

    MySQL:删除数据库的实用命令中

    MySQL 中有三个实用的命令可以帮助开发人员便捷地删除数据库或表格中的数据,他们分别是 DROP、DELETE 和 TRUNCATE 命令,这些命令可以根据需要,灵活地完成删除数据库或表格内容操作。 在实际开发中,需要根据不同...

    MySQL篇(带答案).pdf

    MySQL篇 MySQL 是一种关系型数据库管理系统,主要用于存储和管理数据。下面是 MySQL 篇的知识点...drop、truncate 和 delete 都是数据库操作语句,但是它们的应用场景和效果不同,需要根据具体情况选择合适的语句。

    mysql面试题 mysql面试题mysql面试题

    本文总结了MySQL面试题中的知识点,包括索引、MyISAM和InnoDB、事务、数据库设计、索引使用注意事项、CHAR和VARCHAR、NOW()和CURRENT_DATE()、视图、游标和存储过程、drop、delete和truncate等。

    MySQL删除表数据 MySQL清空表命令 3种方法

    然而,在需要保留某些条件下的数据或涉及复杂的业务逻辑时,`DELETE FROM` 或 `DROP + CREATE` 方法更为合适。 总之,掌握这些MySQL清空表数据的方法,能让你在数据库维护和管理中更加得心应手。正确地运用它们,...

    MySQL的删除步骤

    2. TRUNCATE语句:TRUNCATE用于快速清空表,速度比DELETE快,因为它不记录单个行的删除操作。`TRUNCATE TABLE 表名;` 二、删除表 1. DROP TABLE语句:`DROP TABLE IF EXISTS 表名;` 这会删除指定的表,如果表不存在...

    mysql面试题 包含 初级 中级 高级 各级别知识点.rar

    drop、truncate、 delete区别 数据库三范式是什么? union和union all有什么不同? char、varchar2、varchar有什么区别? 合并查询有哪些? SQL语句执行顺序 null的含义 MySQL、SqlServer、oracle写出字符存储...

    Mysql考试题库及答案

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

    mysql命令行操作详细

    例如,要增加一个用户 test1,密码为 abc,让他可以在任何主机上登录,并对所有数据库有查询、插入、修改、删除的权限,可以使用以下命令:grant select,insert,update,delete on *.* to test1@”%” identified by ...

    计算机数据库面试重要知识点.pdf

    delete 和 truncate 只删除表的数据不删除表的结构,速度 일반来说:drop> truncate >delete。delete 语句是 DML,这个操作会放到 rollback segment 中,事务提交之后才生效;如果有相应的trigger,执行的时候将被...

    10道经典MySQL⾯试题

    1. **drop, delete与truncate的区别** - **相同点**:它们都可以用于删除表中的数据。 - **不同点**: - `TRUNCATE` 清空表数据并重置自增ID从1开始,而`DELETE`仅删除记录,不会影响ID。 - `DROP` 可以用来删除...

Global site tag (gtag.js) - Google Analytics