存儲過程的作用和意義,存儲過程的創建

 一、什麼是存儲過程:
存儲過程
是在大型數據庫系統中,一組爲了完成特定功能的SQL 語句集,存儲在數據庫中,經過第一次編譯後再次調用不需要再次編譯,
用戶通過指定存儲過程的名字並給出參數(如果該存儲過程帶有參數)來執行它。存儲過程是數據庫中的一個重要對象,任何一個設計良好的數據庫應用程序都應該用到存儲過程。
二、爲什麼要用存儲過程呢
存儲過程真的那麼重要嗎,它到底有什麼好處呢?存儲過程說白了就是一堆SQL 的合併。中間加了點邏輯控制。
1.存儲過程處理比較複雜的業務時比較實用。具體分爲兩個方面:
(一)響應時間上來說有
優勢:如果你在前臺處理的話。可能會涉及到多次數據庫連接。但如果你用存儲過程的話,就只有一次。存儲過程可以給我們帶來運行效率提高的好處;
(二)、從安全上使用了存儲過程的系統更加穩定:程序容易出現BUG 不穩定,而存儲過程,只要數據庫不出現問題,基本上是不會出現什麼問題的。
2.數據量小的項目不用存儲過程也可以正常運作。
三、那麼什麼時候才需要用存儲過程?
存儲過程不僅僅適用於大型項目,對於中小型項目,使用存儲過程也是非常有必要的。

第一:存儲過程因爲SQL語句已經預編繹過了,因此運行的速度比較快。
第二:存儲過程可以接受參數、輸出參數、返回單個或多個結果集以及返回值。可以向程序返回錯誤原因。
第三:存儲過程運行比較穩定,不會有太多的錯誤。只要一次成功,以後都會按這個程序運行。
第四:存儲過程主要是在服務器上運行,減少對客戶機的壓力。
第五:存儲過程可以包含程序流、邏輯以及對數據庫的查詢。同時可以實體封裝和隱藏了數據邏輯。
第六:存儲過程可以在單個存儲過程中執行一系列 SQL 語句。
第七:存儲過程可以從自己的存儲過程內引用其它存儲過程,這可以簡化一系列複雜語句。

其實存儲過程還可以控制權限,比如一個表不直接允許用戶直接訪問,但要求允許用戶訪問和修改其中一個或多個字段,那就可以通過一個存儲過程來實現並允許該用戶使用該存儲過程。

還有,如果多條SQL語句執行過程中,過程環節返回了數據作爲後面環節的輸入數據,如果直接通過SQL語句執行,勢必導致大量的數據通過網絡返回到客戶機,並在客戶機運算;如果封裝在存儲過程中,則將運算放在服務器進行,不但減少了客戶機的壓力,同時也減少了網絡流量,提高了執行的效率。

缺點如下:
1.可維護性比較差。
2.可讀性差。

個人認爲在開發系統時存儲過程不要濫用,用多了後期維護就比較麻煩了。

簡單入門案例:


--oracle 存儲過程 如下
-- 1.創建表
create table t1(id number,tname varchar2(30));
--基本格式  語法
CREATE procedure 存儲過程名  AS
  BEGIN
    --執行的內容 
END;


--1、創建無參存儲過程  通過 儲過程添加數據
CREATE procedure insert_t1 as
begin
  insert into t1 values(1,'javacto.taobao.com');
end;

--1.調用無能存儲過程
call insert_t1();
--3.查詢t1表數據 
select * from t1;



--4創建帶參的 存儲過程  通過 儲過程添加數據
CREATE procedure insert_t2(id number,tname varchar2) as
begin
  insert into t1 values(id,tname);
end;
--調用 有能的 存儲過程 
call insert_t2(3,'javacto.ke.qq.com');

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章