16.1 更新数据
更新(修改)表中的数据,可使用UPDATE语句。
有两种更新方式:
- 更新表中的特定行
- 更新表中的所有行
注意不要省略where子句,否则就会更新表中所有行。
基本的update语句有三部分组成:
- 要更新的表
- 列名和它们的新值
- 确定要更新那些行的过滤条件
# 更新数据
SET SQL_SAFE_UPDATES = 0;
update customers
set cust_email = 'kim@thetoystore.com'
where cust_id = 1000000005;
# 更新多个列,只需要使用一条set命令
update customers
set cust_contact = 'Sam Roberts',
cust_email = 'sam@toyland.com'
where cust_id = 1000000006;
要删除某个列的值,可设置它为NULL(假如表定义允许NULL值)
# 删除某个列的值,设置它为NULL
update customers
set cust_email = NULL
where cust_id = 1000000005;
16.2 删除数据
使用DELETE语句。有两种delete方式:
- 从表中删除特定的行
- 从表中删除所有行
注意不要省略where否则就会删除所有行
# 删除数据
# 从表中删除特定的行
delete from customers
where cust_id = 1000000006;
# 从表中删除所有行,省略where子句 ,它将删除表中每个顾客。
16.3 更新和删除的指导原则
- 除非确实要更新或删除每一行,否则绝对不要使用不带where子句的update或delete语句。
- 保证每个表都有主键,这样就可以通过where子句指定特定的行
- 在update或delete语句使用where子句前,应该先用select测试保证需要操作的是正确的记录
- 使用强制实施引用完整性的数据库,这样DBMS将不允许删除其数据与其他表相关联的行。
- 有的DBMS允许数据库管理员施加约束,防止执行不带where子句的update或delete语句。