修改数据 / 更新行 |
UPDATE 语句的任一形式都可以确定修改那些行的 WHERE 子句结尾。如果您省略 WHERE 子句,则修改所有行。要选择在 WHERE 子句中需要更改的精确行集可能非常复杂。对 WHERE 子句的唯一限制是,不可在子查询的 FROM 子句中命名您更新的表。
UPDATE customer SET fname = 'Barnaby', lname = 'Dorfler' WHERE customer_num = 103;
WHERE 子句选择您想要更新的行。在演示数据库中,customer.customer_num 列是那个表的主键,因此,此语句最多可更新一行。
UPDATE orders SET backlog = 'y' WHERE ship_date IS NULL AND order_num IN (SELECT DISTINCT items.order_num FROM items WHERE items.stock_num = 6 AND items.manu_code = 'ANZ');
此子查询返回一订单编号(零个或多个)的列。然后,该 UPDATE 操作针对该列表测试 orders 的每一行,如果那一行相匹配,则执行更新。