範文齋

數據庫面試題:存儲過程

存儲過程和函數的區別是什麼?

數據庫面試題:存儲過程

答:存儲過程是用戶定義的一系列SQL語句的集合,涉及特定表或其他對象的任務,用戶可以調用存儲過程。

而函數通常是數據庫已經定義的方法,它接收參數並返回某種類型的值,並且不涉及特定用戶表,例如聚集函數avg、max、count等,日期時間單數day、month等。

PL/SQL(Procedural Language/SQL, PL/SQL)是編寫數據庫存儲過程的一種過程語言,它結合了SQL的數據操縱能力

和過程化語言的流程控制能力,是SQL的過程化擴展。

綜上PL/SQL就是對數據的操縱過程化

存儲過程的優點

它是由PL/SQL語句書寫的過程,這個過程經編譯和優化後存儲在數據庫服務器中,因此稱它爲存儲過程,使用時只要調用即可。

1、由於存儲過程不像解釋執行的語句那樣在提出操作請求時才進行語法分析和優化工作,因而運行效率高,

它提供了在服務器端快速執行SQL語句的有效途徑。

2、存儲過程降低了客戶機和服務器之間的通信量。客戶機上的應用程序只要通過網絡向服務器發出存儲過程的名字和參數,就可以讓RDBMS執行許多條的SQL語句,並執行數據處理。只有最終處理結果才返回客戶端。

3、方便實施企業規則。可以把企業規則的運算程序寫成存儲過程放入數據庫服務器中,由RDBMS管理,既有利於集中控制,又能方便地進行維護。當用戶規則發生變化時,只需要修改存儲過程,無需修改其他應用程序。