oracle中,預存程序是一組為了完成特定功能的sql語句,儲存在資料庫中,預存程序能夠重複使用,減少開發人員工作量;而觸發器則是資料庫提供給程式設計師和數據分析員來保證資料完整性的一種方法,它是與表格事件相關的特殊的預存程序。
本教學操作環境:Windows7系統、Oracle 11g版、Dell G3電腦。
oracle中觸發器是什麼
#觸發器(trigger)是資料庫提供給程式設計師和資料分析員來保證資料完整性的一種方法,它是與表事件相關的特殊的預存程序。由事件觸發。
觸發器在觸發一定事件的時候隱式執行的一段sql語句,觸發器不能接收參數。 Oracle觸發器則是觸發Oracle資料庫中對資料庫進行insert、update、delete操作或對視圖進行類似的操作,還有一些系統的事件,例如資料庫的關閉或開啟。
觸發器的分類有哪些?
(1)、資料操縱語言(DML)觸發器:創建在表上,有DML時間來觸發的觸發器;
(2)、替代(instead of )觸發器:建立在視圖上,用來取代對視圖進行新增、修改和刪除操作。
(3)、資料定義語言(DDL)觸發器:定義在模式上,觸發事件是對資料庫物件的建立和修改操作。
(4)、資料庫系統觸發器:定義在整個資料庫上,觸發的時間是資料庫的操作,例如資料庫的啟動和關閉。
觸發器的組成部分有哪些?
(1)、觸發的事件:即在何種情況下觸發trigger,例如:insert、update、delete。
(2)、觸發的時間:即該trigger是在觸發事件之前(before)還是在觸發事件之後(after),也是觸發的事件和該trigger主體的先後順序。
(3)、觸發器本身:也就是觸發器在觸發事件的時候要執行的動作,例如:pl/sql區塊。
(4)、觸發的頻率:說明該觸發器內定義的動作被執行的次數。即語句級觸發器和行級觸發器。語句級觸發器是指當某個事件發生時,該觸發器只會執行一次。而行級觸發器,在某個事件發生時,對受到該操作影響的每一行數據,都會單獨執行一次觸發器。
oracle中預存程序是什麼
預存程序(Stored Procedure)是在大型資料庫系統中,一組為了完成特定功能的SQL 語句集,儲存在資料庫中,經過第一次編譯後再次呼叫不需要再次編譯,使用者透過指定預存程序的名字並給出參數(如果該預存程序帶有參數)來呼叫預存程序。
簡單的說就是專門做一件事一段sql語句。
預存程序能夠重複使用,減少開發人員工作量。
在oracle資料庫中預存程序是procedure。
為什麼要寫預存程序
1.高效率
預存程序編譯一次後,就會存到資料庫,每次呼叫時都直接執行。而普通的sql語句我們要存到其他地方(例如:記事本 上),都要先分析編譯才會執行。所以想對而言預存程序效率更高。
2.降低網路流量
預存程序編譯好會放在資料庫,我們在遠端呼叫時,不會傳輸大量的字串類型的sql語句。
3.複用性高
預存程序往往是針對一個特定的功能編寫的,當再需要完成這個特定的功能時,可以再次呼叫該預存程序。
4.可維護性高
當功能要求發生小的變化時,修改之前的預存程序比較容易,花費精力少。
5.安全性高
完成某個特定功能的預存程序一般只有特定的使用者可以使用,具有使用身分限制,更安全。
推薦教學:《Oracle教學》
以上是oracle中觸發器和預存程序是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!