sql怎么删除表中某一行数据

说白了,使用DELETE删除数据其实很简单,但是陷阱也不少。
我们先来说说最重要的事情。
DELETE语句和UPDATE一样,必须添加WHERE条件,否则表将被直接清空。
去年,当我们运行该项目时,一个新人忘记添加 WHERE,第二天整个数据库备份就崩溃了。
说实话,当时挺尴尬的。
还有一点就是运行前要备份,尤其是生产环境。
用俚语来说,这称为雪崩效应。
事实上,前面的一点滞后会导致整个后面的下降。
还有另一个重要的细节。
比如MySQL有一个像DELETE...LIMIT 1 这样的不好的操作,去年我们跑一个活动的时候,我们用这个来恢复误删除的数据,大约3 000个数据级别。
起初我以为 DELETE 和 TRUNCATE 类似,但后来意识到这是错误的。
TRUNCATE是物理删除表结构然后重建,而DELETE是逻辑逐行删除。
很多人没有注意到这一点。

建议使用前添加EXPLAIN来分析索引。
不要等到数据量增加了才后悔。
等等,还有一件事。
如果您使用IDE编写SQL,请注意日志。
有些客户端会默认添加 LIMIT 1 以防止出现故障。
此时删除一行会自动停在第一个匹配的行处。
很多人不重视这一点。

SQL 删除一个字段

这就是洞。
不要相信 DROPCOLUMN。
使用 ALTER TABLE 更改类型。
使用 sp_rename 重命名。
使用 INFORMATION_SCHEMA.COLUMNS 验证该字段。
不要这样做。