儲存過程基本介紹

2021-06-18 00:32:10 字數 1855 閱讀 7189

儲存過程

儲存過程(stored procedure

)是一組為了完成特定功能的

sql 

語句集,經編譯後儲存在資料庫。使用者通過指定儲存過程的名字並給出引數(如果該儲存過程帶有引數)來執行它。

所以,儲存過程不可能在jdbc中用sql語句完成。儲存過程只能是在db寫好了,由jdbc呼叫。

在sql server 

的系列版本中儲存過程分為兩類:系統提供的儲存過程和使用者自定義儲存過程。系統過程主要儲存在

master 

資料庫中並以

sp_為字首,並且系統儲存過程主要是從系統表中獲取資訊,從而為系統管理員管理

sql server 

提供支援。通過系統儲存過程,

ms sql server 

中的許多管理性或資訊性的活動(如了解資料庫物件、資料庫資訊)都可以被順利有效地完成。儘管這些系統儲存過程被放在

master 

資料庫中,但是仍可以在其它資料庫中對其進行呼叫,在呼叫時不必在儲存過程名前加上資料庫名。而且當建立乙個新資料庫時,一些系統儲存過程會在新資料庫中被自動建立。使用者自定義儲存過程是由使用者建立並能完成某一特定功能(如查詢使用者所需資料資訊)的儲存過程。在本章中所涉及到的儲存過程主要是指使用者自定義儲存過程。 

儲存過程的優點 

當利用ms sql server 

建立乙個應用程式時,

transaction-sql 

是一種主要的程式語言。若運用

transaction-sql 

來進行程式設計,有兩種方法。其一是,在本地儲存

transaction- sql 

程式,並建立應用程式向

sql server 

傳送命令來對結果進行處理。其二是,可以把部分用

transaction-sql 

編寫的程式作為儲存過程儲存在

sql server 

中,並建立應用程式來呼叫儲存過程,對資料結果進行處理儲存過程能夠通過接收引數向呼叫者返回結果集,結果集的格式由呼叫者確定;返回狀態值給呼叫者,指明呼叫是成功或是失敗;包括針對資料庫的操作語句,並且可以在乙個儲存過程中呼叫另一儲存過程。 

儲存過程具有以下優點: 

(1) 儲存過程允許標準元件式程式設計 

儲存過程在被建立以後可以在程式中被多次呼叫,而不必重新編寫該儲存過程的sql 

語句。而且資料庫專業人員可隨時對儲存過程進行修改,但對應用程式源**毫無影響(因為應用程式源**只包含儲存過程的呼叫語句),從而極大地提高了程式的可移植性。 

(2) 儲存過程能夠實現較快的執行速度 

如果某一操作包含大量的transaction-sql 

**或分別被多次執行,那麼儲存過程要比批處理的執行速度快很多。因為儲存過程是預編譯的,在首次執行乙個儲存過程時,查詢優化器對其進行分析、優化,並給出最終被存在系統表中的執行計畫。而批處理的

transaction- sql 

語句在每次執行時都要進行編譯和優化,因此速度相對要慢一些。 

(3) 儲存過程能夠減少網路流量 

對於同乙個針對資料資料庫物件的操作(如查詢、修改),如果這一操作所涉及到的 transaction-sql 

語句被組織成一儲存過程,那麼當在客戶計算機上呼叫該儲存過程時,網路中傳送的只是該呼叫語句,否則將是多條

sql 

語句,從而大大增加了網路流量,降低網路負載。 

(4) 儲存過程可被作為一種安全機制來充分利用 

系統管理員通過對執行某一儲存過程的許可權進行限制,從而能夠實現對相應的資料訪問許可權的限制,避免非授權使用者對資料的訪問,保證資料的安全。(我們將在14 

章「sqlserver 

的使用者和安全性管理

」中對儲存過程的這一應用作更為清晰的介紹)

mysql儲存過程基本介紹及其基本語法

mysql儲存過程 儲存過程 stored procedure 是一種在資料庫中儲存複雜程式,以便外部程式呼叫的一種資料庫物件。儲存過程是為了完成特定功能的sql語句集,經編譯建立並儲存在資料庫中,使用者可通過指定儲存過程的名字並給定引數 需要時 來呼叫執行。儲存過程思想上很簡單,就是資料庫 sql...

儲存過程介紹

儲存過程是一組為了完成特定功能的sql語句集,儲存在資料庫中,經過第一次編譯後再次呼叫不需要再次編譯,使用者通過指定儲存過程的名字並給出引數 如果該儲存過程帶有引數 來執行它。儲存過程是資料庫中的乙個重要物件。使用儲存過程可以增強sql語言的功能和靈活性,由於可以用流程控制語句編寫儲存過程,有很強的...

mysql儲存過程介紹

1 什麼是mysql儲存例程?儲存例程是儲存在資料庫伺服器中的一組sql語句,通過在查詢中呼叫乙個指定的名稱來執行這些sql語句命令.2 為什麼要使用mysql儲存過程?我們都知道應用程式分為兩種,一種是基於web,一種是基於桌面,他們都和資料庫進行互動來完成資料的訪問工作。假設現在有一種應用程式包...