03sql語句sql訓練營視頻03苦修oracle_第1頁
03sql語句sql訓練營視頻03苦修oracle_第2頁
03sql語句sql訓練營視頻03苦修oracle_第3頁
03sql語句sql訓練營視頻03苦修oracle_第4頁
03sql語句sql訓練營視頻03苦修oracle_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、Merge語句(oracle9i)根據(jù)條件在表中執(zhí)行修改或插入數(shù)據(jù)的功能,如果插入的數(shù)據(jù)行在目的表中存在就執(zhí)行UPDATE,如果是不存在則執(zhí)行INSERT: -避免了單獨的修改 -增強性能和應用性Merge語句的語法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語句的語法1、into子句后是執(zhí)行操作的目的表,用來存放歷史數(shù)據(jù)的。2、using子句后是數(shù)據(jù)源,數(shù)據(jù)源通常包括了表、視圖或子查詢。3、on子句后就是判斷數(shù)據(jù)是否在目的表中存在的判斷條件。寫法類似于 where語句中的條件語句??梢詫懮弦粋€或者多個連接在一起的條件。4、where matched then子句代表匹配on中定義條件的數(shù)據(jù)要執(zhí)行的分支,符合on條件代表著源數(shù)據(jù)在目的數(shù)據(jù)庫總已經存在,所以通過update子句定義如何修改已經存在的數(shù)據(jù),是目的數(shù)據(jù)庫與源數(shù)據(jù)庫的數(shù)據(jù)保持一致。5、 where NOT matched子句代表不

3、匹配on中定義條件的數(shù)據(jù)要執(zhí)行的分支,這個分支表示源數(shù)據(jù)在目的數(shù)據(jù)庫中不存在,所以需要通過insert子句將源數(shù)據(jù)插入目的數(shù)據(jù)庫。 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ù)庫的事務處理定義:事務是一組相關的數(shù)據(jù)改變的邏輯集合。在一個事務中的數(shù)據(jù)改變(DML)保持著一致的狀態(tài),數(shù)據(jù)的改變同時成功或者同時失敗。數(shù)據(jù)庫的事務由下列語句組成:一組DML語句,修改的數(shù)據(jù)在他們中保持一致一個 DDL (Data Define Language) 語句一個 DCL (Data Control La

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

6、It)2、當從SQL*PLUS中強行退出或連接異常中斷 時,事務自動回滾事務的自動處理Sqlplus的自動提交在SQLPLus中有一個與事務相關的環(huán)境變量 mit,如果這個參數(shù)被啟用,在SQLPLus中所有修改將在執(zhí)行時自動提交,啟動的方法是在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ù)可恢復當前的用戶可以看到DML操作的結果其他用戶不能看到DML操作的結果被操作的數(shù)據(jù)被鎖住,其他用戶不能修改這些數(shù)據(jù)提交后數(shù)據(jù)的狀態(tài)數(shù)據(jù)的修改被永久寫在數(shù)據(jù)庫中.數(shù)據(jù)以前的狀態(tài)永久性丟失.所有的用戶都能看到操作后的結果.記錄鎖被釋放,其他用戶可操作這些記錄.所有的 savepoint被去掉.回滾后數(shù)據(jù)的狀態(tài)語句將放棄所有的數(shù)據(jù)修改1、修改的數(shù)據(jù)被回退.2、恢復數(shù)據(jù)以前的狀態(tài).3、行級鎖被釋放.SQL DELETE FROM employee;147 rows deleted.SQL ROLLBACK;Rollback complete.回退到指定的標記點上1、通過存儲點在當前的事務中創(chuàng)建標記

8、點2、可回退到存儲點指定的標記點SQL UPDATE.SQL SAVEPOINT undo1;Savepoint created.SQL INSERT.SQL ROLLBACK TO undo1;Rollback complete.回退到指定的標記點上SQL select * from feng; ID NAME- - 1 aaaaa 2 bbbbbbSQL insert into feng values(3,ccccc);已創(chuàng)建 1 行。SQL savepoint undo1;保存點已創(chuàng)建。SQL insert into feng values(4,dddddd);已創(chuàng)建 1 行。SQL savepoint undo2;保存點已創(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本章小結本章講述了三種常

溫馨提示

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

評論

0/150

提交評論