在用insert into向数据库中增加数据的时候,发现如果delete某行之后id就不连续了。于是找了相关的资料:
-------------------------------------分割线---------------------------------------------
MySQL为我们提供了delete和truncate语句来删除数据。
delete 语句的定义:
经常和数据库打交道的孩子们,删除数据的时候用的大多都是 delete 语句。现在让我们来看一下 delete语句的定义。
DELETE [LOW_PRIORITY] [QUICK] [IGNORE] FROM tbl_name
[WHERE where_definition]
[ORDER BY ...]
[LIMIT row_count]
delete 语句的示例:
按照上面的语法结构,我想删除 firends 表中所有 user_name 等于 simaopig 的记录,就可以使用如下SQL语句:
delete from friends where user_name = 'simaopig';
delete 注意事项:
从语法结构中,我们就可以看出,和 update 语法一样,我们是可以省略 where 子句的。不过这是一个很危险的行为。
因为如果不指定 where 子句,delete 将删除表中所有的记录,而且是立即删除,即使你想哭都没有地方,也没有时间,因为你需要马上和主管承认错误,并且立即找出MySQL日志,来回滚记录。不过一旦你有过一次这样的经历,我相信这一定是印象深刻的。
truncate 语句的简单说明:
这个语句之前我也没有接触过,也没有使用过。因为一般情况下,删除数据大家都在使用delete语句。其实这个 truncate 命令很简单,它的意思是:删除表的所有记录。相当于 delete 语句不写 where 子句一样。其语法结构为:
TRUNCATE tbl_name
这里简单的给出个示例,我想删除 friends 表中所有的记录,可以使用如下语句:
truncate table friends;
truncate 和 delete的效率问题:
如果想要删除表的所有数据,truncate语句要比 delete 语句快。因为 truncate 删除了表,然后根据表结构重新建立它,而 delete 删除的是记录,并没有尝试去修改表。
这也是为什么当向一个使用 delete 清空的表插入数据时,MySQL 会记住前面产生的AUTOINCREMENT序列,并且继续利用它对AUTOINCREMENT字段编号。而truncate删除表后,表是从1开始为autoincrement字段编号。
不过truncate命令快规快,却不像delete命令那样对事务处理是安全的。因此,如果我们想要执行truncate删除的表正在进行事务处理,这个命令就会产生退出并产生错误信息。
转自http://blog.csdn.net/BigBird2012/article/details/6340424
分享到:
相关推荐
在MySQL数据库中,删除数据的操作主要由两种语句来完成,即`DELETE`和`TRUNCATE TABLE`。虽然两者都能达到删除数据的目的,但它们在执行机制、效率、回滚机制以及与事务的关系等方面存在显著差异。 1. **执行机制**...
MySQL中的删除操作主要涉及到两种方式:DELETE和TRUNCATE,它们在不同的场景下有不同的优势和用途。下面将详细解析这两种方法以及它们的使用细节。 1. DELETE语句: DELETE语句是最常用的删除数据的方式,它允许...
本文主要讲mysql中三种删除表的操作,delete语句、truncate语句以及drop语句的区别: 简介 delete 1、删除整张表的数据: delete from table_name; 2、删除部分数据,添加where子句: delete from table_name ...
实验中,学生将学习使用 Insert 语句进行数据插入、Delete 语句删除数据、TRUNCATE TABLE 语句清空表数据、Update 语句修改数据。 1. 数据插入操作 在实验中,学生将学习使用 Insert 语句插入数据,包括单记录插入...
在MySQL数据库管理中,删除数据的操作主要有两种方式:`DELETE` 和 `TRUNCATE`。它们虽然都能实现数据的删除,但在使用场景、性能和效果上有着显著的区别。以下是关于这两种操作的详细解释: 1. **`DELETE` 命令** ...
实际线上的场景比较复杂,当时涉及了truncate, delete 两个操作,经确认丢数据差不多7万多行,等停下来时,差不多又有共计1万多行数据写入。 这里为了简单说明,只拿弄一个简单的业务场景举例。 测试环境: Percona-...
方法一我常用的做法,就是在数据库中加一个删除标识字段,如: isdel=1 这样就代码... 您可能感兴趣的文章:mysql之delete删除记录后数据库大小不变mysql 删除操作(delete+TRUNCATE)mysql支持跨表delete删除多表记录MyS
MySQL中的`DELETE`语句是用于从数据库中删除数据行的关键命令。在处理单个表时,`DELETE`语句的使用相对简单,而在多表环境中进行连接删除时,其复杂性和潜在影响则显著增加。这里我们将深入探讨`DELETE`语句的各种...
同时,如果你的表有外键约束,`TRUNCATE` 和 `DELETE` 都可能因级联删除而影响到其他表。此外,如果你的表有触发器,`DELETE` 操作会触发这些触发器,而 `TRUNCATE` 不会。 在选择适合的删除方法时,要考虑数据量、...
在本实验训练中,主要涉及的是关系型数据库管理系统MySQL中的数据操作,包括数据的增加(Insert)、删除(Delete)和修改(Update),这些都是数据库管理的基础且重要的操作。实验旨在加深对这些SQL语句的理解和应用...
本实践训练旨在帮助学生掌握 MySQL 数据库的基本操作,包括数据的插入、删除和修改。通过对汽车用品网上商城数据库 Shopping 的操作,可以熟悉 Insert、Delete、TRUNCATE TABLE 和 Update 语句的使用方法,并理解单...
MySQL 中有三个实用的命令可以帮助开发人员便捷地删除数据库或表格中的数据,他们分别是 DROP、DELETE 和 TRUNCATE 命令,这些命令可以根据需要,灵活地完成删除数据库或表格内容操作。 在实际开发中,需要根据不同...
总结来说,删除MySQL数据库中的数据记录有多种方式,包括`DELETE`语句和`TRUNCATE TABLE`语句,它们各有特点和适用场景。在实际应用中,要根据具体需求选择合适的方法,并且一定要谨慎操作,防止数据丢失。对于多表...
MySQL是世界上最流行的关系型数据库管理系统之一,用于存储和管理...了解并熟练掌握这些MySQL删除数据的基本操作和安全措施,将有助于你更有效地管理和维护数据库。在实际工作中,始终牢记谨慎行事,以保护数据安全。
在MySQL数据库管理中,删除表数据是常见的操作,主要分为两种方法:DELETE语句和TRUNCATE TABLE语句。这两种方法各有特点,适用于不同的场景。 首先,DELETE语句提供了更大的灵活性,因为它允许通过WHERE子句指定...
2. TRUNCATE语句:TRUNCATE用于快速清空表,速度比DELETE快,因为它不记录单个行的删除操作。`TRUNCATE TABLE 表名;` 二、删除表 1. DROP TABLE语句:`DROP TABLE IF EXISTS 表名;` 这会删除指定的表,如果表不存在...
* 清空表:使用 `delete from 表名` 或 `truncate table 表名` 语句可以清空一个表中的所有数据。 * 查看表结构:使用 `desc Table_Name` 语句可以查看一个表的结构。 * 修改表:使用 `alter table` 语句可以修改一...
您可能感兴趣的文章:数据库中删除语句Drop、Delete、Truncate的相同点和不同点的比较(实例说明)drop,truncate与delete的区别详解MySQL中DROP,TRUNCATE 和DELETE的区别实现mysql从零开始浅析drop user与delete from ...