sql儲存過程概念 優缺點 語法

2021-10-23 12:50:10 字數 1478 閱讀 7274

sql儲存過程

資料庫程式設計過程中經常會用到儲存過程,相比平常的sql語句,儲存過程 更方便,快速,安全

1.概念:

儲存過程是一組為了完成特定功能的sql 語句集,儲存在資料庫中並只需要建立時編譯(所以儲存過程執行更快),使用者通過指定儲存過程的名字並給出引數 來執行它。

儲存過程包含邏輯控制語句和資料操縱語句

可以接受引數,輸出引數 ,返回單個或多個結果集以及返回值。

2.優缺點

優點

1.由於應用程式隨著時間推移會不斷更改 , 增刪功能 ,sql 語句會變得更複雜,儲存過程為封裝此類**提供了乙個替換位置;

2.由於儲存過程在建立時即在資料庫伺服器上進行了編譯並儲存在資料庫中, 所以儲存過程執行要比單個的 sql 語句塊要快;

3.可維護性高 , 更新儲存過程通常比更改 , 測試以及重新部署程式集需要較少的時間和精力 ;

4.**精簡一致 , 乙個儲存過程可以用於應用程式**的不同位置 ;

5.增強安全性:通過向使用者****授予對儲存過程** (而不是基於表) 的訪問許可權** , 它們可以提供對特定資料的訪問 ;

6.提高**安全 , 防止 sql注入(但未徹底解決 , 例如將資料操作語言 dml 附加到輸入引數) ;

缺點:

1.如果更改範圍大到需要對輸入儲存過程的引數進行更改 , 或者要更改由其返回的資料 , 則仍需要更新程式集中的**以新增引數 , 等等 ;

2**.可移植性差 ,** 由於儲存過程將應用程式繫結到 server , 因此使用儲存過程封裝業務邏輯將限制應用程式的可移植性 ; 如果應用程式的可移植性在您的環境中非常重要 , 則將業務邏輯封裝在不特定於 rdbms 的中間層中可能是乙個更佳的選擇 ;

3.編寫簡單儲存過程

建立儲存過程

create

procedure getusers(

)begin

select

*from

user

;end

;

呼叫儲存過程

call getusers(

);

刪除儲存過程

drop

procedure

ifexists getusers;

帶引數的儲存過程

支援in(傳遞給儲存過程),out(從儲存過程傳出),inout(對儲存過程傳入和傳出)型別的引數

儲存過程優缺點

儲存過程的優點 1.儲存過程只在創造時進行編譯,以後每次執行儲存過程都不需再重新編譯,而一般sql語句每執行一次就編譯一次,所以使用儲存過程可提高資料庫執行速度。2.當對資料庫進行複雜操作時 如對多個表進行update,insert,query,delete時 可將此複雜操作用儲存過程封裝起來與資料...

儲存過程優缺點

優點 1.由於應用程式隨著時間推移會不斷更改,增刪功能,t sql過程 會變得更複雜,storedprocedure為封裝此 提供了乙個替換位置。2.執行計畫 儲存過程在首次執行時將被編譯,這將產生乙個執行計畫 實際上是 microsoft sql server為在儲存過程中獲取由 t sql 指定...

儲存過程優缺點

儲存過程的優缺點 優點 1.由於應用程式隨著時間推移會不斷更改,增刪功能,t sql過程 會變得更複雜,storedprocedure為封裝此 提供了乙個替換位置。2.執行計畫 儲存過程在首次執行時將被編譯,這將產生乙個執行計畫 實際上是 microsoft sql server為在儲存過程中獲取由...