玖叶教程网

前端编程开发入门

SQL中的delete操作,从删除到跑路

所有对于数据的删除操作,都应该是慎重、慎重、再慎重的。

部分删除操作是无法回退的,甚至会导致数据库无法运行等重要灾难。

这让我想起了一句话,从删库到跑路,这不仅仅是一句玩笑话而已。

DELETE

以下面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

TRUNCATE只能用于删除整张表的数据,不支持WHERE子句

truncate table CUSTOMERS;

相对于delete语句,它有2点优势:

1、delete并不会释放表所占用的空间,而truncate会释放

2、使用 truncate table 删除全表数据速度更快

但是truncate 操作自动提交(COMMIT)的,也就是说执行了,数据就找不回来了。

DROP

DROP TABLE CUSTOMERS;

删除表,而不仅仅只有表数据。也就是说把整个表去掉,删除内容和定义,释放空间。

是三个删除操作中最彻底的,同样也是操作立即生效,没有回头路的。

DROP还可以用于删除索引DROP INDEX,删除数据库DROP DATABASE等操作。

总结

从安全性角度来说delete> truncate >drop,相反的,执行效率确是drop > truncate > delete。

总之还是一句话,慎重、再慎重。

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言