SQL 使用 UPDATE 语句更新表中的数据,基本语法如下:
UPDATE t
SET col1 = expr1,
col2 = expr2,
...
[WHERE condition];
其中,t 是表名;SET 子句指定了需要更新的列和更新后的值,多个字段使用逗号进行分隔;只有满足 WHERE 条件的数据行才会被更新;如果没有指定条件,将会更新表中所有行。
以下语句将会更新 emp_devp 表中“赵云”的月薪和邮箱:
UPDATE emp_devp
SET salary = salary + 1000,
bonus = 8000
WHERE emp_name = '赵云';
SELECT emp_name, salary, bonus
FROM emp_devp
WHERE emp_name = '赵云';
emp_name|salary |bonus |
--------|--------|-------|
赵云 |16000.00|8000.00|
“赵云”的月薪增加了 1000,奖金被修改为 8000。
和插入数据一样,更新数据时也会执行约束校验,确保不会产生违反约束的数据。
除了直接指定数据值之外,也可以通过一个关联子查询获取更新后的值:
UPDATE emp_devp
SET email = (SELECT e.email
FROM employee e
WHERE e.emp_id = emp_devp.emp_id);
以上语句在 SET 子句中使用了一个关联子查询,将员工表中开发部门员工的电子邮箱更新到 emp_devp 表的对应记录中。