综述
- 使用 UPDATE 语句更新数据。
- 可以一次更新多条数据。
- 基本套路
UPDATE table
SET column = value [,column = value,...]
[WHERE condition];
基本应用
UPDATE employees SET department_id = 70 WHERE employee_id = 113;
1 row updated.
- 如果省略WHERE子句,则表中的所有数据都将被更新。
UPDATE copy_emp SET department_id = 110;
22 rows updated.
sql> ed
Wrote file afiedt.buf
1* update emp set sal = 1800,deptno = 20 where ename='SMITH'
sql> /
在UPDATE语句中使用子查询
- 更新 114号员工的工作和工资使其与 205号员工相同
UPDATE employees SET job_id = (SELECT job_id FROM employees WHERE employee_id = 205),salary = (SELECT salary FROM employees WHERE employee_id = 205) WHERE employee_id = 114;
1 row updated.
- 在 UPDATE 中使用子查询,使更新基于另一个表中的
数据。
UPDATE copy_emp SET department_id = (SELECT department_id FROM employees WHERE employee_id = 100) WHERE job_id = (SELECT job_id FROM employees WHERE employee_id = 200);
1 row updated.
更新中的数据完整性错误
UPDATE employees SET department_id = 55 WHERE department_id = 110;
======
UPDATE employees * ERROR at line 1: ORA-02291: integrity constraint (HR.EMP_DEPT_FK) violated - parent key not found