删除一个表的sql 语句怎么写啊

上周 我在写SQL代码 删表用drop语句
drop table users;
这个语句直接删掉整个表 包括所有数据和定义 空间也一起释放了
注意三点: 1 . 删应用表别名时 delete后接别名 再接表名 不然会报错
2 . delete后面不能加 比如deletefrom是错的
3 . 删除数据后 返回int值 删一条返回1 删n条返回n
2 02 3 年 我那个朋友 刚用drop删错表了 数据都没了 算了

Sql语句如何删除单独一个表里的所有数据?

DELETE语句慢,记录日志,可回滚。
TRUNCATE语句快,不记录日志,不可回滚。

比如,删除电商订单表order_2 02 3 1 2 的数据。
用DELETE,慢,可恢复。
用TRUNCATE,快,恢复不了。

不确定时用DELETE,安全。
确定不要触发器回滚,用TRUNCATE,省事。

你自己掂量。

sql怎么删除一个表中的所有数据

TRUNCATE TABLE快很多,直接清空整表,不记日志,回滚不了。
DELETE FROM慢,一条条删,有日志,能回滚。
想快就选TRUNCATE,要回滚就选DELETE。

你具体啥情况?

sql server如何删除一张表中与另一张表相同的数据

说实话,你这SQL写法挺有意思的。
我当年刚接触SQL的时候,也经常被这种多表关联搞得头大。

你这张user_a表,我瞅了一眼,大概有3 列,user是用户名,money是金额,还有一列是时间戳。
这数据挺典型的交易流水记录,但说实话,钱数都到小数点后两位了,是按分算还是按元算?这块我没亲自跑过,你最好确认下。

user_b表就不一样了,结构简单,就一列user。
我猜这表可能是黑名单或者已归档用户?因为后面的查询是筛除掉这些用户。

最关键的来了:你那句HAVING user_a.user NOT IN (...),这用法我常用。
意思是把user_b表里有的用户全筛掉,只看user_a表里那些没出现在user_b的记录。
比如user_b可能存了1 00个被封号,那执行完这条SQL,结果里就只剩user_a里那9 000多个正常用户的统计。

有意思的是,你用了GROUP BY和HAVING一起,这组合很常见。
GROUP BY把同用户的钱和记录数聚在一起,HAVING再按条件挑出来。
你这里用NOT IN把user_b排除,相当于做了个反向筛选。

跑完之后结果怎么样?我猜会返回user_a里那些"干净"用户的总金额和总笔数。
比如某个用户A在user_a有1 0笔交易,总金额8 8 8 ,但A在user_b里被删了,那这条记录就会出现在最终结果里。
而如果用户B在user_b被列出来了,那B在user_a的所有记录都会被过滤掉。

数据我记得是X左右,但建议你核实下,特别是user_a表里的小数精度问题。
你把最终跑出来的结果贴出来,我帮你再分析分析。