>  기사  >  데이터 베이스  >  Oracle 10g 更新操作

Oracle 10g 更新操作

WBOY
WBOY원래의
2016-06-07 17:12:16874검색

1.单表更新 语法 :update test set column=value [,column=value]... [where condition] eg :select * from test eg: update te

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

linux

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.