drop table
- 删除指定的表的结构和数据,执行后表将不存在
- 无法恢复删除的数据
- 等同于删除一个Excel表
DROP TABLE table_name;
DELETE
- 只从表中删除数据,不删除表的结构
- 允许删除指定条件的部分数据,若没有指定删除条件,就直接清空表中所有数据
- 执行后表仍旧存在,但表中没有数据
- 等同于删除一个Excel中的数据
- 可通过还原备份或回放二进制日志来恢复被删除的数据。
DELETE FROM table_name WHERE condition;
TRUNCATE
- 同delete一样,用于清空表中的数据
- 不可指定删除条件,直接删除所有数据
- 不仅会删除表中数据,还会重置表中的自增计数器(也就是有auto_increment约束的字段的值)
- 无法通过还原备份或回放日志来恢复被清空的数据
TRUNCATE TABLE table_name;
总结:
- DROP TABLE: 删除整个表,包括表结构和数据,无法恢复。
- DELETE: 删除表中的数据,可以使用 WHERE 子句指定条件,但是不会重置自增计数器。
- TRUNCATE: 删除整个表中的数据,重置自增计数器,并释放表占用的存储空间,使其回到初始状态。