《SQL必知必会》--更新和删除数据

第16课 更新和删除数据

上一节课的时候提到SQL常用的四个语句。前面已经讲过了两个SELECT INSERT,下面将后面两个 UPDATE DELETE

更新数据

两种更新数据的 UPDATE 方式:

  1. 更新表中的特定行
  2. 更新表中的所有行

使用UPDATE语句的三个要素:

  1. 要更新的表
  2. 列名和新值
  3. 确定更新那些行的过滤条件

某条记录中某个列的数据更新

1
2
3
update customers
set cust_email = 'johnkou@github.io'
where cust_id = '1000000005';

某条记录中多列数据更新

1
2
3
4
update customers
set cust_email = 'johnkou@github.io',
cust_state = 'CH'
where cust_id = '1000000005';

不要忘记列名之间的逗号,
不要忘记WHERE子句,如果没写该子句,则更新全部行。

更新某条记录中某列的数据为空值(即删除该数据):

1
2
3
update customers
set cust_email = null
where cust_id = '1000000005';

删除数据

删除数据的两种DELETE形式:

  1. 删除表中特定行
  2. 删除表中所有行
1
2
delete from customers
where cust_id = '1000000006';

带着过滤条件则删除特定行,去掉过滤条件则删除所有行;
DELETE删除整行,删除指定列请使用UPDATE语句;
DELETE语句从标中删除数据,但不是删除整个表;
如果想删除所有行,不要用DELETE,而要使用TRUNCATE TABLE,速度更快(下节课详解)。

更新和删除的指导原则

  1. 除非确实打算更新和删除每一行,否则绝对不要使用不带WHERE子句的UPDATE DELETE语句。
  2. 保证每个表都有主键,并尽可能使用它。
  3. UPDATEDELETE语句使用WHERE子句前,应该先用SELECT进行测试,保证过滤条件的正确性。
  4. 使用强制实施引用完整性的数据库(见第12课?也没提如何操作啊!),这样DBMS将不允许删除其数据与其他表相关联的行。

小结

更新删除很简单,操作错误很危险。