问题
要修改表中某些(或全部)行的值。例如,可能想要将部门20中所有员工的工资增加10%,下面的结果集显示了该部门员工的deptno ename 和sal字段
select deptno,ename,loc
from emp
where deptno = 20
order by 1,3
要将所有的sal字段值增加10%
解决方案:
使用update语句来修改数据库表中已有行。例如:
update emp
set sal = sal*1.10
where deptno = 20
讨论:
当准备要对大量的数据进行更新时,用户可能需要先预览一下结果,此时可以使用一个seslect语句,该语句中包含想要放到set子句中的表达式。下面的select语句显示了工资增加10%后的结果:
select deptno,
ename,
sal as orig_sal,
sal*.10 as amt_to_add,
sal*1.10 as new_sal
from emp
where deptno =20
order by 1,5
增加的工资被分为两列:一列是显示与原工资的差额,而另一列显示增加后的工资。