sql删除注意的问题

老大骂你都是有原因的,基础要打好!!!!

SQL关于删除的三个语句:DROP、TRUNCATE、 DELETE 的区别。

DROP test;

删除表test,并释放空间,将test表删除的一干二净

TRUNCATE test;

删除test内容,并释放空间,但是表结构依然在,与drop的区别就是drop删除之后表结构也不复存在了,

--删除指定条件的数据
DELETE FROM test WHERE age=30 AND country='US';

--删除整个表
DELETE FROM test 
DELETE * FROM test

仅删除表test内的所有内容,保留表的定义,不释放空间,与TRUNCATE的区别是DELETE将删除的数据存储在系统回滚段中,假设你要同时删除两个表中的数据,在删除过程中出现一个表删除成功,另一个删除失败,这个时候就会出现错误数据,这个是很严重的问题,用delete好处是数据可以进行恢复,但是TRUNCATE却不能

速度:drop > truncate > delete

这里面尽量不要不要使用drop和truncate,否则就会上演程序猿从删库到跑路的戏剧性一幕

mysql中delete使用时不允许给表取别名!!!!!否则会报错,但是oracle可以

原文地址:https://www.cnblogs.com/cuteCoderSnow/p/10103045.html