成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Oracle中只更新兩張表對應數據的方法

數據庫 Oracle 數據庫運維
本文將講解Oracle中只更新兩張表對應數據的方法,主要是解決遇到需要從另外一個表來更新本表的值的問題的時候。

先建立一個結構一模一樣的表emp1,并為其插入部分數據

create table emp1
as
select * from emp where deptno = 20;

update掉emp1中的部分數據

update emp1
set sal = sal + 100,
comm = nvl(comm,0) + 50

然后我們試著使用emp1中數據來更新emp中sal 和 comm這兩列數據。

我們可以這么寫

Update emp
Set(sal,comm) = (select sal,comm. From emp1 where emp.empno = emp1.empno)
Where exists (select 1 from emp1 where emp1.empno = emp.empno)

請你尤其注意這里的where子句,你可以嘗試不寫where子句來執行以下這句話,你將會使得emp中的很多值變成空。

這是因為在oracle的update語句中如果不寫where子句,oracle將會默認的把所有的值全部更新,即使你這里使用了子查詢并且某在值并不能在子查詢里找到,你就會想當然的以為,oracle或許將會跳過這些值吧,你錯了,oracle將會把該行的值更新為空。

我們還還可以這么寫:

update (select a.sal asal,b.sal bsal,a.comm acomm,
b.comm bcomm from emp a,emp1 b where a.empno = b.empno)
set asal = bsal,
acomm = bcomm;

這里的表是一個類視圖。當然你執行時可能會遇到如下錯誤:

ERROR 位于第 2 行:

ORA-01779: 無法修改與非鍵值保存表對應的列

這是因為新建的表emp1還沒有主鍵的緣故

下面增加一個主鍵

alter table emp1

add constraint pk_emp1 primary key (empno);

執行之后

在執行前面的語句就能成功。

這里我們總結一下:

在oracle中不存在update from結構,所以遇到需要從另外一個表來更新本表的值的問題的時候,有兩種解決的辦法:

一種是使用子查詢,使用子查詢時一定要注意where條件(一般后面接exists子句),除非兩個表是一一對應的,否則where條件必不可少,遺漏掉where條件時可能會導致插入大量空值。

另外一種是類視圖的更新方法,這也是oracle所獨有的。先把對應的數據全部抽取出來,然后更新表一樣更新數據,這里需要注意的是,必須保證表的數據唯一型。

【編輯推薦】

  1. 善用Oracle表空間設計提升數據庫性能
  2. 使用Java編寫Oracle存儲過程
  3. 詳解Oracle數據庫中DUAL表的使用
責任編輯:彭凡 來源: qzone
相關推薦

2010-09-09 15:23:16

SQL更新數據

2019-07-16 08:57:15

kafka應用Broker

2016-06-02 14:10:35

iPhoneAndroid

2011-02-25 13:10:23

兩個數據庫服務器兩個數據庫兩張表連接查詢

2013-05-10 09:31:06

程序員

2011-07-18 17:16:14

CSVPLSQLDevelope

2020-07-06 14:42:36

業務架構IT架構直播

2010-08-04 11:38:24

Oracle數據庫

2009-11-20 10:55:13

Oracle數據比較

2017-05-04 11:09:21

互聯網

2010-09-09 15:13:33

SQL更新數據

2011-05-17 11:23:02

Oracle數據庫

2009-05-21 09:24:42

表空間查詢Oracle

2010-10-28 16:17:22

2010-09-02 10:36:51

SQL刪除

2017-05-31 15:27:54

2010-10-29 16:48:30

oracle查詢所有表

2021-03-16 09:02:33

PythonMapinfo數據切塊處理

2010-04-01 17:14:04

Oracle索引

2011-03-04 17:30:42

Oracle數據庫
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久99一区二区 | 久久久高清 | 国产精品网址 | 欧美电影一区 | 毛片a区 | 99精品国产一区二区青青牛奶 | 天天插天天操 | 日本a视频 | 大陆一级毛片免费视频观看 | av中文字幕在线观看 | 在线免费黄色小视频 | 羞羞网站免费观看 | 亚洲一区三区在线观看 | 久草新视频 | 国产一区二区在线看 | 欧美日韩成人一区二区 | 久久天天躁狠狠躁夜夜躁2014 | 金莲网 | 欧美第一区 | 爱高潮www亚洲精品 中文字幕免费视频 | 日本黄视频在线观看 | 九九热精品视频在线观看 | 久久草视频 | 国产精品久久久亚洲 | 亚洲欧美精品 | 视频在线观看一区二区 | 亚洲在线一区 | 日韩三级 | 午夜免费小视频 | 国产毛片久久久久久久久春天 | 国产精品久久久久久久久久妇女 | 色桃网 | 国产一级毛片视频 | 中文字幕乱码亚洲精品一区 | 黄色在线免费观看视频网站 | 免费观看av| 精品国产黄a∨片高清在线 成人区精品一区二区婷婷 日本一区二区视频 | 亚洲一区久久 | 国产91久久精品一区二区 | 成人精品国产免费网站 | 这里只有精品999 |