16 更新和删除数据
1.更新数据
更新(修改)表中的数据,可以使用UPDATE语句,有两种方式:
更新表中的特定行;
更新表中的所有行。
注意,不要省略WHERE子句。
基本的UPDATE语句由三部分组成:
要更新的表;
列名和它们的新值;
确定要更新哪些行的过滤条件。
(1)UPDATE语句总是以要更新的表名开始,SET命令用来将新值赋给被更新的列,以WHERE子句结束,它告诉DBMS更新哪一行。
为了更新客户1000000005的电子邮件地址,输入:
UPDATE Customers
SET cust_mail = 'kim@thetoystore.com'
WHERE cust_id = '1000000005';
(2)更新多个列的语法稍有不同,在更新多列时,只需要使用一条SET命令。
输入:
UPDATE Customers
SET cust_contact = 'Sam Roberts' ,
cust_email = 'sam@toyland.com'
WHERE cust_id = '1000000006';
(3)要删除某个列的值,可设置它为NULL。输入:
UPDATE Customers
SET cust_email = 'NULL'
WHERE cust_id = '1000000005';
2.删除数据
删除(修改)表中的数据,可以使用DELETE语句,有两种方式:
删除表中的特定行;
删除表中的所有行。
注意,不要省略WHERE子句。
(1)DELETE FROM要求指定从中删除数据的表名,WHERE子句过滤要删除的行。如果省略WHERE子句,将删除表中的所有顾客。
从Customers表中删除一行,输入:
DELETE FROM Customers
WHERE cust_id = '1000000006';
要点:
DELETE不需要列名或通配符,删除整行而不是整列;
要删除指定的列,请使用UPDATE语句;
DELETE删除表的内容但不删除表本身;
要删除所有行,可使用更快的TRUNCATE TABLE语句。
3.更新和删除的指导原则
(1)除非却是打算更新和删除每一行,否则不要省略WHERE子句;
(2)保证每个表都主键;
(3)在UPDATE或DELETE语句使用WHERE子句之前,应先用SELECT进行测试,保证它过滤的是正确的记录,以防编写的WHERE子句不正确;
(4)使用强制实施引用完整性的数据库,这样DBMS将不允许删除其数据与其他表相关联的行;
(5)有的DBMS允许数据库管理员施加约束,防止执行不带WHERE子句的UPDATE或DELETE语句。