03sql語(yǔ)句sql訓(xùn)練營(yíng)視頻03苦修oracle_第1頁(yè)
03sql語(yǔ)句sql訓(xùn)練營(yíng)視頻03苦修oracle_第2頁(yè)
03sql語(yǔ)句sql訓(xùn)練營(yíng)視頻03苦修oracle_第3頁(yè)
03sql語(yǔ)句sql訓(xùn)練營(yíng)視頻03苦修oracle_第4頁(yè)
03sql語(yǔ)句sql訓(xùn)練營(yíng)視頻03苦修oracle_第5頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余11頁(yè)可下載查看

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、Merge語(yǔ)句(oracle9i)根據(jù)條件在表中執(zhí)行修改或插入數(shù)據(jù)的功能,如果插入的數(shù)據(jù)行在目的表中存在就執(zhí)行UPDATE,如果是不存在則執(zhí)行INSERT: -避免了單獨(dú)的修改 -增強(qiáng)性能和應(yīng)用性Merge語(yǔ)句的語(yǔ)法MERGE INTO table_name table_alias USING (table|view|sub_query) alias ON (join condition) WHEN MATCHED THEN UPDATE SET col1 = col_val1, col2 = col2_val WHEN NOT MATCHED THEN INSERT (column_list

2、) VALUES (column_values);Merge語(yǔ)句的語(yǔ)法1、into子句后是執(zhí)行操作的目的表,用來(lái)存放歷史數(shù)據(jù)的。2、using子句后是數(shù)據(jù)源,數(shù)據(jù)源通常包括了表、視圖或子查詢。3、on子句后就是判斷數(shù)據(jù)是否在目的表中存在的判斷條件。寫(xiě)法類似于 where語(yǔ)句中的條件語(yǔ)句??梢詫?xiě)上一個(gè)或者多個(gè)連接在一起的條件。4、where matched then子句代表匹配on中定義條件的數(shù)據(jù)要執(zhí)行的分支,符合on條件代表著源數(shù)據(jù)在目的數(shù)據(jù)庫(kù)總已經(jīng)存在,所以通過(guò)update子句定義如何修改已經(jīng)存在的數(shù)據(jù),是目的數(shù)據(jù)庫(kù)與源數(shù)據(jù)庫(kù)的數(shù)據(jù)保持一致。5、 where NOT matched子句代表不

3、匹配on中定義條件的數(shù)據(jù)要執(zhí)行的分支,這個(gè)分支表示源數(shù)據(jù)在目的數(shù)據(jù)庫(kù)中不存在,所以需要通過(guò)insert子句將源數(shù)據(jù)插入目的數(shù)據(jù)庫(kù)。 merge into departments01 d1 using departments d on(d.department_id=d1.department_id) when matched then update set d1.department_name=d.department_name, d1.manager_id=d.manager_id , d1.location_id=d.location_id when not matched then in

4、sert(d1.department_id,d1.department_name,d1.manager_id,d1.location_id) values(d.department_id,d.department_name,d.manager_id,d.location_id);數(shù)據(jù)庫(kù)的事務(wù)處理定義:事務(wù)是一組相關(guān)的數(shù)據(jù)改變的邏輯集合。在一個(gè)事務(wù)中的數(shù)據(jù)改變(DML)保持著一致的狀態(tài),數(shù)據(jù)的改變同時(shí)成功或者同時(shí)失敗。數(shù)據(jù)庫(kù)的事務(wù)由下列語(yǔ)句組成:一組DML語(yǔ)句,修改的數(shù)據(jù)在他們中保持一致一個(gè) DDL (Data Define Language) 語(yǔ)句一個(gè) DCL (Data Control La

5、nguage)語(yǔ)句數(shù)據(jù)庫(kù)的事務(wù)1、開(kāi)始于第一個(gè)執(zhí)行的語(yǔ)句2、結(jié)束于:用戶執(zhí)行COMMIT 或 ROLLBACK單個(gè)的DDL or DCL 語(yǔ)句用戶連接異常錯(cuò)誤,或者用戶斷開(kāi)連接 系統(tǒng)崩潰COMMIT和 ROLLBACK的優(yōu)點(diǎn)COMMIT和 ROLLBACK可以顯示的控制事務(wù)。好處:1、保證數(shù)據(jù)一致性,修改過(guò)的數(shù)據(jù)在沒(méi)有提交之前 是不能被其他用戶看到的。2、在數(shù)據(jù)永久性生效前重新查看修改的數(shù)據(jù)3、將相關(guān)操作組織在一起,一個(gè)事務(wù)中相關(guān)的數(shù) 據(jù)改變或者都成功,或者都失敗。1、當(dāng)下列情況發(fā)生時(shí)事務(wù)自動(dòng)隱式提交:執(zhí)行一個(gè) DDL 語(yǔ)句執(zhí)行一個(gè)DCL 語(yǔ)句從 SQL*Plus正常退出(EXIT 或者 QU

6、It)2、當(dāng)從SQL*PLUS中強(qiáng)行退出或連接異常中斷 時(shí),事務(wù)自動(dòng)回滾事務(wù)的自動(dòng)處理Sqlplus的自動(dòng)提交在SQLPLus中有一個(gè)與事務(wù)相關(guān)的環(huán)境變量 mit,如果這個(gè)參數(shù)被啟用,在SQLPLus中所有修改將在執(zhí)行時(shí)自動(dòng)提交,啟動(dòng)的方法是在SQLplus環(huán)境下執(zhí)行set mit on命令SQL select * from t;未選定行SQL show mit; mit OFFSQL set mit onSQL show mit; mit IMMEDIATESQL insert into t values (1,default);已創(chuàng)建 1 行。提交完成。SQL提交或回滾前數(shù)據(jù)的狀態(tài)以前的數(shù)

7、據(jù)可恢復(fù)當(dāng)前的用戶可以看到DML操作的結(jié)果其他用戶不能看到DML操作的結(jié)果被操作的數(shù)據(jù)被鎖住,其他用戶不能修改這些數(shù)據(jù)提交后數(shù)據(jù)的狀態(tài)數(shù)據(jù)的修改被永久寫(xiě)在數(shù)據(jù)庫(kù)中.數(shù)據(jù)以前的狀態(tài)永久性丟失.所有的用戶都能看到操作后的結(jié)果.記錄鎖被釋放,其他用戶可操作這些記錄.所有的 savepoint被去掉.回滾后數(shù)據(jù)的狀態(tài)語(yǔ)句將放棄所有的數(shù)據(jù)修改1、修改的數(shù)據(jù)被回退.2、恢復(fù)數(shù)據(jù)以前的狀態(tài).3、行級(jí)鎖被釋放.SQL DELETE FROM employee;147 rows deleted.SQL ROLLBACK;Rollback complete.回退到指定的標(biāo)記點(diǎn)上1、通過(guò)存儲(chǔ)點(diǎn)在當(dāng)前的事務(wù)中創(chuàng)建標(biāo)記

8、點(diǎn)2、可回退到存儲(chǔ)點(diǎn)指定的標(biāo)記點(diǎn)SQL UPDATE.SQL SAVEPOINT undo1;Savepoint created.SQL INSERT.SQL ROLLBACK TO undo1;Rollback complete.回退到指定的標(biāo)記點(diǎn)上SQL select * from feng; ID NAME- - 1 aaaaa 2 bbbbbbSQL insert into feng values(3,ccccc);已創(chuàng)建 1 行。SQL savepoint undo1;保存點(diǎn)已創(chuàng)建。SQL insert into feng values(4,dddddd);已創(chuàng)建 1 行。SQL savepoint undo2;保存點(diǎn)已創(chuàng)建。SQL select * from feng; ID NAME- - 3 ccccc 4 dddddd 1 aaaaa 2 bbbbbbSQL rollback to undo1;回退已完成。SQL select * from feng; ID NAME- - 3 ccccc 1 aaaaa 2 bbbbbbSQL commit;提交完成。SQL select * from feng; ID NAME- - 3 ccccc 1 aaaaa 2 bbbbbbSQL本章小結(jié)本章講述了三種常

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論