所有对于数据的删除操作,都应该是慎重、慎重、再慎重的。
部分删除操作是无法回退的,甚至会导致数据库无法运行等重要灾难。
这让我想起了一句话,从删库到跑路,这不仅仅是一句玩笑话而已。
所有对于数据的删除操作,都应该是慎重、慎重、再慎重的。
部分删除操作是无法回退的,甚至会导致数据库无法运行等重要灾难。
这让我想起了一句话,从删库到跑路,这不仅仅是一句玩笑话而已。
以下面CUSTOMERS表为例
+----+----------+-----+-----------+----------+
| ID | NAME | AGE | ADDRESS | SALARY |
+----+----------+-----+-----------+----------+
| 1 | Ramesh | 32 | Ahmedabad | 2000.00 |
| 2 | Khilan | 25 | Delhi | 1500.00 |
| 3 | kaushik | 23 | Kota | 2000.00 |
| 4 | Chaitali | 25 | Mumbai | 6500.00 |
| 5 | Hardik | 27 | Bhopal | 8500.00 |
| 6 | Komal | 22 | MP | 4500.00 |
| 7 | Muffy | 24 | Indore | 10000.00 |
+----+----------+-----+-----------+----------+//原文出自【易百教程】,商业转载请联系作者获得授权,非商业请保留原文链接:https://www.yiibai.com/sql/sql-delete-query.html
1、下面语句根据查询条件,删除一行数据
DELETE FROM CUSTOMERS WHERE ID = 1;
2、下面语句删除全部数据
DELETE FROM CUSTOMERS;
DELETE操作可以说是安全的删除操作,因为它可以ROLLBACK;
也就是说如果你误操作,只要没有COMMIT,就可以把数据找回来。
而另一个删除操作TRUNCATE就没那么幸运了。
TRUNCATE只能用于删除整张表的数据,不支持WHERE子句
truncate table CUSTOMERS;
相对于delete语句,它有2点优势:
1、delete并不会释放表所占用的空间,而truncate会释放
2、使用 truncate table 删除全表数据速度更快
但是truncate 操作自动提交(COMMIT)的,也就是说执行了,数据就找不回来了。
DROP TABLE CUSTOMERS;
删除表,而不仅仅只有表数据。也就是说把整个表去掉,删除内容和定义,释放空间。
是三个删除操作中最彻底的,同样也是操作立即生效,没有回头路的。
DROP还可以用于删除索引DROP INDEX,删除数据库DROP DATABASE等操作。
从安全性角度来说delete> truncate >drop,相反的,执行效率确是drop > truncate > delete。
总之还是一句话,慎重、再慎重。