更新数据
可采用两种方式使用UPDATE:
- 更新表中特定行;
- 更新表中所有行。
基本的UPDATE语句由3部分组成,分别是:
- 要更新的表;
- 列名和它们的新值;
- 确定要更新行的过滤条件。
没有WHERE子句的话,MySQL将会用这个电子邮件地址更新customers表中所有行。
更新客户10005的电子邮件地址
1 | UPDATE customers |
更新客户10005的名称和电子邮件地址
1 | UPDATE customers |
UPDATE语句中可以使用子查询,使得能用SELECT语句检索出的数据更新列数据。
如果用UPADTE语句更新多行,并且在更新这些行中的一行或多行时出现一个错误,则整个UPDATE操作被取消。为即使是发生错误,也继续进行更新,可使用IGNORE关键字,如下所示:UPDATE IGNORE customers…
删除数据
可以使用两种方式使用DELETE:
- 从表中删除特定的行;
- 从表中删除所有行。
1 | DELETE FROM customers |
如果省略WHERE子句,它将删除表中每个客户。
如果想从表中删除所有行,不要使用DELETE。可使用TRUNCATE TABLE语句,它完成相同的工作,但速度更
快(TRUNCATE实际是删除原来的表并重新创建一个表,而不是逐行删除表中的数据)。
更新和删除的指导原则
下面是许多SQL程序员使用UPDATE或DELETE时所遵循的习惯。
- 除非确实打算更新和删除每一行,否则绝对不要使用不带WHERE子句的UPDATE或DELETE语句。
- 保证每个表都有主键,尽可能在WHERE子句中使用它(可以指定各主键、多个值或值得范围)。
- 在对UPDATE或DELETE使用WHERE子句之前,应该先用SELECT进行测试,保证它过滤得是正确的记录,以防编写的WHERE子句不正确。
- 使用强制实施引用完整性的数据库,这样MySQL将不允许删除具有与其他表相关联的数据行。