chapter20(更新和删除数据)

UPDATE和DELETE语句。
更新数据 UPDATE语句由3部分组成:

  • 要更新的表;
  • 列名和他们的新值;
  • 确定要更新行的过滤条件。
例:客户10005现在有了电子邮件地址,更新记录:
UPDATE customers SET cust_email = 'elmer@fudd.com' WHERE cust_id = 10005;

UPDATE语句以WHERE子句结束,如果没有会更新所有行。
更新多个行:
UPDATE customers SET cust_name = 'The Fudds', cust_email = 'elmer@fudd.com' WHERE cust_id = 10005;

  • UPDATE语句可以使用子查询;
  • IGNORE关键字:如果更新多条时一条出错操作会整个被取消;为即使发生错误也继续进行更新:UPDATE IGNORE customers...
如果要删除某列,可设置其为NULL:
UPDATE customers SET cust_email = NULL WHERE cust_id = 10005;

删除数据 例:从customers表中删除一行:
DELETE FROM customers WHERE cust_id = 10006;

【chapter20(更新和删除数据)】DELETE不需要列名或通配符。删除整行而不是整列。
更新和删除的指导原则
  • 除非确实打算更细和删除每一行,否则绝对不要使用不带WHERE子句的UPDATE和DELETE语句;
  • 保证每个表都有主键;
  • 在对UPDATE或DELETE语句使用WHERE子句前,应该先用SELECT进行测试,保证它过滤的是正确的记录;
  • 使用强制实施引用完整性的数据库(见chapter15),这样MySQL将不允许删除具有与其他表相关联的数据的行。

    推荐阅读