Oracle 10g 更新操作

2014-11-24 18:52:09 · 作者: · 浏览: 0

1.单表更新


语法 :update test set column=value [,column=value]... [where condition]


eg :select * from test


eg: update test set sex=111 译:整个表的sex列更新成111


eg: update test set sex=333 where AAA=7 译:更新test表中某一个值


2.多表更新也叫使用子查询更新


eg:将sal列的值更新为和emp表相同,如果使用常规的update语句,需要先将emp表SAL列的值查出,再使用update语句更新查询后的结果值,这样


做的话需要两步操作,需要做额外的数据IO,而使用子查询的话,可以有效地减少IO而提高执行效率。


update test set sal=(select sal from emp ) --错误提示单行子查询返回多行


update test set sal=(select sal from emp where rownum=1) 译:所有的sal列更新为一个值


update test set sal=(select sal from (select * from (select rownum r,sal from emp) where r=16 )) where AAA=8 译:更新条件为AAA=8的sal的值


上面的更新语句分为三步


1.select * from (select rownum r,sal from emp) where r=16


2.select sal from (select * from (select rownum r,sal from emp) where r=16 )


3.赋值


select * from test where AAA=8