SQL 知识量:22 - 44 - 129
从一个表中删除数据,应当使用delete语句,有两种使用方式:
从表中删除特定的行。
从表中删除所有行。
在操作时,一定要注意,千万不要省略where子句,否则就是删除所有的行。
例如:删除person表中所有男性信息。
delete from person where sex='male';
删除后的person表变为:
+----+----------+---------+--------+ | id | realName | realAge | sex | +----+----------+---------+--------+ | 1 | Susan | 12 | female | | 5 | Jen | 12 | female | | 8 | Alice | 12 | female | | 10 | Ella | 12 | female | | 13 | Soen | 16 | NULL | +----+----------+---------+--------+
需要注意的是:
delete删除的是表中的数据,但不删除表本身。
删除操作是十分危险的操作,应当十分谨慎。可以通过设置外键约束的方式对表内容的完整性进行保护。
如果要更快的删除表中所有行,即清空表中数据,不要使用delete,可以使用truncate table语句,它的效率更高,因为不需要记录数据变动情况。例如:清空person表。
truncate table person;
truncate table与delete在清空表方面的最大区别是:使用truncate table删除表中的数据后,自动增加字段的默认初始值将重置,也就是将重新从1开始计数;而使用delete删除表中所有行后,自动增加字段的值,将根据删除前该字段的最大值继续计数。
使用update和delete时应当注意以下原则:
除非真的需要更新和删除所有行,否则不要省略where子句。
确保每个表都有主键,依据主键进行更新和删除更加安全。
在更新和删除前,应当使用select语句进行测试,确保语句是你想要的效果。
使用强制实施引用完整性约束的数据库,可以避免错误删除其数据与其他表相关联的行。
使用update和delete时,一定要小心小心再小心!
Copyright © 2017-Now pnotes.cn. All Rights Reserved.
编程学习笔记 保留所有权利
MARK:3.0.0.20240214.P35
From 2017.2.6