UPDATE
UPDATE 修改表中已有数据,哪一行、改哪列、改成什么——三个要素缺一不可。永远不要执行没有 WHERE 的 UPDATE——那样会把整张表所有行的该列都改成同一个值。
修改的值可以是一个常量,也可以基于当前值计算(如 SET basic_salary = basic_salary * 1.1),还可以引用其他列。MySQL 里 UPDATE 还支持 ORDER BY 和 LIMIT,比如"只更新最旧的 100 条记录"。
数据是活的,总要变。飞翔科技的员工涨薪了要更新工资、商品调价了要更新价格、租房合同续签了要更新租期——这些全是 UPDATE 的活。更新前如果拿不准条件对不对,可以先用同款 WHERE 跑一遍 SELECT 看看会命中哪些行。
标准写法:
UPDATE 表名
SET 列名1 = 新值1, 列名2 = 新值2
WHERE 条件;
以飞翔科技为例:
-- 航仔绩效满分,奖金上调至两万
UPDATE employees
SET performance_bonus = 20000.00
WHERE emp_id = 1;
-- 飞翔小店全线商品打 8 折
UPDATE products
SET price = price * 0.8
WHERE shop_name = '飞翔小店';
-- 租房续签,租金涨 500,租期延到 3 年
UPDATE rental_contracts
SET monthly_rent = monthly_rent + 500,
contract_years = 3
WHERE community = '飞翔中文苑' AND room_number = 6;
SET 后面可以同时更新多列,用逗号隔开就行。WHERE 用了两个条件精确定位,避免改错其他行。