1. 程式人生 > >從機房重構中學習資料庫——儲存過程和觸發器

從機房重構中學習資料庫——儲存過程和觸發器

      開門見山,我也是在機房中學習使用儲存過程,看來大家的部落格,慢慢的使用,接觸了一段時間還是有點模糊。簡單總結一下。                                                              What                                                                                                                                    儲存過程:是使用SQL語句和流程控制語句編寫的模組,儲存過程經編譯和優化後儲存在資料庫伺服器端的資料庫中,使用時呼叫。流程控制語句是:控制語句用於控制程式的流程, 以實現程式的各種結構方式。(用提高班的理解就是三類控制結構吧)---
流程控制語句百科

 Why        一、  提高執行速度。在執行儲存過程前,資料庫伺服器對其進行語法和語義分析,並給出優化執行方案。(這裡面的名詞聽過,理解的很淺)相比之下,互動執行的SQL語句是解釋執行,所以前者要快。(這裡面的道理有誰願意交流一下,很樂意!)             二、增強了SQL的功能和靈活性。儲存過程可以用流程控制語句編寫,有很強的靈活性,能完成複雜的邏輯判斷和複雜的運算。             三、可以降低網路的通訊量。儲存過程儲存在伺服器端,執行全部邏輯流程僅需要 向伺服器傳送一次過程請求即可,避免了互動模式下處理邏輯執行中額外的中間通訊開銷。             四、減輕了程式編寫的工作量。儲存過程可以反覆呼叫,並可供其他前端應用程式共享應用邏輯。
            五、間接實現安全控制功能。 How         開始用了幾個儲存過程,裡面的小規矩值得注意,不過多多之間就能明白不少。         和使用儲存過程能達到同樣效果的還有一個叫SQL/PSM.。簡單解釋一下:其指定了如何編寫持久儲存模組,提供流程控制語句來表示過程處理應用邏輯。 來張圖吧:
接下來繼續說說下面的觸發器。 What         觸發器(Trigger)是一個能有系統自動執行對資料庫修改的語句。由三部分組成:一、事件:事件是指對資料庫的插入,刪除,修改等操作。觸發器在這些事件發生時開始工作。二、條件:觸發器將測試條件是否成立。成立則執行相應的動作,否則不執行。三、動作。如果觸發器測試滿足預定的條件,那麼,就由DBMS執行這些動作。
Why        觸發器是一種特殊的儲存過程,觸發器不能被直接執行,它們只能為表上的Insert,Update,Delete事件所觸發。不能傳遞或接受引數。能夠處理更復雜的關係。開銷非常低。 可以引用表中的列來完成資料完整性的約束。 How
總結:         這些知識只有在事件中才能更好地感受其中的妙處,也更能激發學習的興趣。通過實踐,我發現理解的不夠深入是應用的不夠多!儲存過程和觸發器,期待再次學習!