本文为本人学习书籍《MySQL必知必会》笔记系列,欢迎持续关注,有问题随时留言评论,一起探讨学习~
20 更新和删除数据
使用更新和删除一定要慎重!一定要慎重!一定要慎重!
因为没有撤销操作,可以先备份再更新/删除;
或者先查询确定无误再更新/删除。
一定要有WHERE语句,否则会更新/删除所有行。否则会更新/删除所有行。否则会更新/删除所有行!!!
20.1更新数据UPDATE
20.1.1更新单个列
UPDATE customers
SET cust_city='太原'
WHERE cust_id=123461;
20.1.2更新多个列
UPDATE customers
SET cust_city='石家庄',
cust_state='河北'
WHERE cust_id=123462;
20.1.3删除某列的一个或多个值——即设置它为NULL(假设允许空值NULL)
UPDATE customers
SET cust_zip=NULL
WHERE cust_id=123459;
20.2删除数据DELETE:删除的是行而不是列
20.2.1删除一行
DELETE FROM customers
WHERE cust_id=100002;
20.2.2删除所有行
TRUNCATE TABLE product.student;
20.3更新和删除的指导原则
除非确实打算更新和删除每一行, 否则绝对不要使用不带WHERE子句的UPDATE或DELETE语句。
保证每个表都有主键,尽可能像WHERE子句那样使用它(可以指定各主键、多个值或值的范围)。
在对UPDATE或DELETE语句使用WHERE子句前,应该先用SELECT进行测试,保证它过滤的是正确的记录,以防编写的WHERE子句不正确。
使用强制实施引用完整性的数据库(关于这个内容,请参阅第15章),这样MySQL将不允许删除具有与其他表相关联的数据的行。
小心使用:MySQL没有撤销 (undo) 按钮。应该非常小心地使用UPDATE和DELETE,否则你会发现自己更新或删除了错误的数据。