存儲過程和函數的區別是什麼?
答:存儲過程是用戶定義的一系列SQL語句的集合,涉及特定表或其餘對象的任務,用戶能夠調用存儲過程。
而函數一般是數據庫已經定義的方法,它接收參數並返回某種類型的值,而且不涉及特定用戶表,例如彙集函數avg、max、count等,日期時間單數day、month等。數據庫
PL/SQL(Procedural Language/SQL, PL/SQL)是編寫數據庫存儲過程的一種過程語言,它結合了SQL的數據操縱能力
和過程化語言的流程控制能力,是SQL的過程化擴展。服務器
綜上PL/SQL就是對數據的操縱過程化網絡
存儲過程的優勢
它是由PL/SQL語句書寫的過程,這個過程經編譯和優化後存儲在數據庫服務器中,所以稱它爲存儲過程,使用時只要調用便可。
一、因爲存儲過程不像解釋執行的SQL語句那樣在提出操做請求時才進行語法分析和優化工做,於是運行效率高,
它提供了在服務器端快速執行SQL語句的有效途徑。
二、存儲過程下降了客戶機和服務器之間的通訊量。客戶機上的應用程序只要經過網絡向服務器發出存儲過程的名字和參數,就可讓RDBMS執行許多條的SQL語句,並執行數據處理。只有最終處理結果才返回客戶端。
三、方便實施企業規則。能夠把企業規則的運算程序寫成存儲過程放入數據庫服務器中,由RDBMS管理,既有利於集中控制,又能方便地進行維護。當用戶規則發生變化時,只須要修改存儲過程,無需修改其餘應用程序。ide
-----------------------------------------------------------------------------------------
函數
觸發器的做用?
觸發器是一中特殊的存儲過程,主要是經過事件來觸發而被執行的。它能夠強化約束,來維護數據的完整性和一致性,能夠跟蹤數據庫內的操做從而不容許未經許可的更新和變化。能夠聯級運算。如,某表上的觸發器上包含對另外一個表的數據操做,而該操做又會致使該表觸發器被觸發。
優化