最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Oracle執(zhí)行Update語句的幾種方式

 更新時間:2022年05月05日 14:46:54   作者:springsnow  
這篇文章介紹了Oracle執(zhí)行Update語句的幾種方式,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下

Oracle沒有update from語法,可以通過四種寫法實(shí)現(xiàn)同樣的功能:

一、標(biāo)準(zhǔn)update語法(常用、速度可能最慢)

當(dāng)更新的表示單個或者被更新的字段不需要關(guān)聯(lián)表帶過來,此法是最好的選擇。

update  a 
set a.c2= (select b.c2from  b where a.c1=b.c1)
where exists   (select 1 from   b where a.c1=b.c1)

二、內(nèi)聯(lián)視圖更新(關(guān)聯(lián)主鍵字段,速度較快)

inline view更新法就是更新一個臨時建立的視圖。

方案:更新一個臨時建立的視圖。要求B表的主鍵字段必須在where條件中,并且是以=號來關(guān)聯(lián)被更新表。

update (select a.c2 as ac2,b.c2 as bc2 from a, b where a.c1=b.c1 and a.c3='2011') as M 
set ac2=bc2

三、merge更新法 (關(guān)聯(lián)字段非主鍵時,速度較快)

merge是oracle特有的語句,語法如下:

MERGE INTO table_name alias1 --主表,即需要被修改的表
USING (table | view | sub_query) alias2 --從表,即來源表
ON (join condition) --連接條件
WHEN MATCHED THEN --在匹配的記錄中進(jìn)行
  UPDATE table_name SET col1 = col_val1, col2 = col2_val --更改主表信息
WHEN NOT MATCHED THEN --在不匹配的情況下,篩選從表記錄插入到主表【可選】
  INSERT (column_list) VALUES (column_values);

原理分析:在alias2中Select出來的數(shù)據(jù),每一條都跟alias1進(jìn)行 ON (join condition)的比較,如果匹配,就對alias1表進(jìn)行更新的操作(Update),如果不匹配,就對alias1表進(jìn)行插入操作(Insert)。

執(zhí)行merge不會返回影響的行數(shù),最多只能兩個表關(guān)聯(lián)。

merge into a
using b 
 on (a.c1=b.c1 and a.c3='2011')
   when matched then
update a.c2=b.c2

四、快速游標(biāo)更新法(復(fù)雜邏輯時,效率很高)

語法:

begin
for cr in (查詢語句) loop  --循環(huán)
update table_name set ...   --更新語句(根據(jù)查詢出來的結(jié)果集合)
end loop;  --結(jié)束循環(huán)
end;
begin
    for cur in (select a.rowid  ,b.c2 from  a, b where a.c1=b.c1 and a.c3='2011' )  loop
        UPDATE a  set c2=cur.c2  where rowid=cur.rowid;
    end loop;
end;

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Oracle 簇的使用詳解

    Oracle 簇的使用詳解

    本篇文章是對Oracle中簇的使用進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • 解決Oracle賬戶被鎖定的問題

    解決Oracle賬戶被鎖定的問題

    這篇文章主要介紹了解決Oracle賬戶被鎖定的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • Oracle游標(biāo)的使用實(shí)例詳解

    Oracle游標(biāo)的使用實(shí)例詳解

    這篇文章主要給大家介紹了關(guān)于Oracle游標(biāo)使用的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或著工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-09-09
  • oracle行轉(zhuǎn)列方法集合匯總(推薦!)

    oracle行轉(zhuǎn)列方法集合匯總(推薦!)

    工作中我們經(jīng)常會碰到行轉(zhuǎn)列的情況,下面這篇文章主要給大家介紹了關(guān)于oracle行轉(zhuǎn)列方法集合的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-04-04
  • oracle求和代碼示例

    oracle求和代碼示例

    這篇文章主要介紹了oracle求和代碼示例,簡單易懂,具有一定參考價值。需要的朋友可以了解下。
    2017-09-09
  • Oracle 子程序參數(shù)模式,IN,OUT,NOCOPY

    Oracle 子程序參數(shù)模式,IN,OUT,NOCOPY

    Oracle 子程序參數(shù)模式主要有IN,OUT,NOCOPY,IN和OUT可以組合,OUT和NOCOPY也可以組合使用.
    2009-10-10
  • 與虛擬機(jī)Oracle連接出現(xiàn)ora-12154問題的解決方法

    與虛擬機(jī)Oracle連接出現(xiàn)ora-12154問題的解決方法

    這篇文章主要介紹了與虛擬機(jī)Oracle連接出現(xiàn)ora-12154問題的解決方法,需要的朋友可以參考下
    2017-03-03
  • win10 oracle11g安裝報(bào)錯問題集合 附解決方法

    win10 oracle11g安裝報(bào)錯問題集合 附解決方法

    這篇文章主要為大家總結(jié)了win10 oracle11g安裝報(bào)錯問題的產(chǎn)生原因,和oracle安裝報(bào)錯的解決方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • oracle通過行范圍查詢?nèi)?至10行并排序

    oracle通過行范圍查詢?nèi)?至10行并排序

    這篇文章主要介紹了oracle如果查詢?nèi)?至10行并排序,很簡單,很實(shí)用,正在學(xué)習(xí)oracle的朋友可以參考下
    2014-09-09
  • Linux系統(tǒng)下啟動/關(guān)閉Oracle數(shù)據(jù)庫

    Linux系統(tǒng)下啟動/關(guān)閉Oracle數(shù)據(jù)庫

    在Linux系統(tǒng)上開啟關(guān)閉Oracle數(shù)據(jù)庫是一個常見的任務(wù),可以通過多種方法來實(shí)現(xiàn),這篇文章主要給大家介紹了關(guān)于Linux系統(tǒng)下啟動/關(guān)閉Oracle數(shù)據(jù)庫的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-07-07

最新評論

桐乡市| 湖口县| 宽城| 遂溪县| 始兴县| 奉节县| 增城市| 于田县| 菏泽市| 合肥市| 万源市| 镇远县| 石家庄市| 穆棱市| 福安市| 鹤山市| 磴口县| 油尖旺区| 太仆寺旗| 湘潭市| 洛隆县| 梅州市| 黑龙江省| 广德县| 陈巴尔虎旗| 祁连县| 崇信县| 绿春县| 武宣县| 抚州市| 阿克| 姚安县| 济阳县| 乾安县| 巴楚县| 昆山市| 托克逊县| 措美县| 维西| 澄迈县| 于田县|