chapter20:更新和删除数据

UPDATE和DELETE语句。

更新数据

UPDATE语句由3部分组成:

  • 要更新的表;
  • 列名和他们的新值;
  • 确定要更新行的过滤条件。

例:客户10005现在有了电子邮件地址,更新记录:

UPDATE customers
SET cust_email = '[email protected]'
WHERE cust_id = 10005;

UPDATE语句以WHERE子句结束,如果没有会更新所有行。

更新多个行:

UPDATE customers
SET cust_name = 'The Fudds',
    cust_email = '[email protected]'
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;

DELETE不需要列名或通配符。删除整行而不是整列。

更新和删除的指导原则

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

你可能感兴趣的:(chapter20:更新和删除数据)