一、存儲過程:oracle有系統存儲過程和自定義存儲過程,爲了完成特定功能的sql語句集,經編譯後存儲在數據庫中,用戶經過特定的存儲過程名來執行。sql
做用:數據庫
(1)、因爲存儲過程只在創造時進行編譯,調用過程當中無需編譯直接執行,而通常的sql語句須要每執行一次就編譯一次,因此存儲過程的執行效率更高,安全
(2)、存儲過程能夠重複使用,可減小數據庫開發人員的工做量服務器
(3)、安全性高,設定某個用戶使用特定存儲過程的具備使用權併發
缺點:大量使用存儲過程,增長服務器的壓力oracle
建立sql語句:函數
create or replace procedure 過程名 is begin ......end ;日誌
執行語句:execute執行索引
二、存儲函數:事件
做用:
缺點:
建立sql語句:
create or replace function 函數名
return
is
三、存儲過程與存儲函數的區別
(1)、存儲函數必須有返回值(單一的),而存儲過程沒有
(2)、存儲過程能夠獨立做爲pl/sql語句執行,而存儲函數不能夠
(3)、函數能夠嵌入到slq語句中執行,而存儲過程則不能夠。
四、觸發器:特定事件出現的時候,自動執行代碼塊,類型存儲過程,但用戶不能直接調用他們,觸發器是數據庫自動執行
觸發器觸發時間有兩種:after和before。
做用:對某一個表或數據庫進行操做時,觸發器內的代碼開始執行
建立slq語句
create trigger 觸發器名 before
類比:就比如,我刪除一個表的數據時要記錄日誌或者修改其餘表的數據
五、索引:
做用:適當的添加索引能夠提升查詢的速度,切記必定是適當的建立
建立sql語句
create index 索引名 on table(column 1,column2)
6.
事務:對數據庫進行一次或屢次的邏輯單元操做,要麼所有執行,要麼所有不執行
鎖:數據庫用來控制資源共享併發訪問的機制
鎖做用:保護正在被修改的數據,直到提交或回滾了事務以後,其餘用戶才能夠更新數據
鎖的優勢:一致性- 一次只容許一個用戶修改數據
完整性- 爲全部用戶提供正確的數據
七、遊標:
Oracle系統在內存中開闢的一個工做區,在其中存放SELECT語句返回的查詢結果
建立sql語句:
declare
cursor 遊標名 is select
begin
end;