帶你快速瞭解“儲存過程”的定義及優點
儲存過程
sql語句執行的時候要先編譯,然後執行。儲存過程就是編譯好了的一些sql語句。應用程式需要用的時候直接呼叫就可以了,所以效率會高。
儲存過程介紹
儲存過程是由流控制和SQL語句書寫的過程,這個過程經編譯和優化後儲存在資料庫伺服器中,應用程式使用時只要呼叫即可。在ORACLE中,若干個有聯絡的過程可以組合在一起構成程式包。
使用儲存過程有以下的優點:
* 儲存過程的能力大大增強了SQL語言的功能和靈活性。儲存過程可以用流控制語句編寫,有很強的靈活性,可以完成複雜的判斷和較複雜的 運算。
* 可保證資料的安全性和完整性。
# 通過儲存過程可以使沒有許可權的使用者在控制之下間接地存取資料庫,從而保證資料的安全。
# 通過儲存過程可以使相關的動作在一起發生,從而可以維護資料庫的完整性。
* 再執行儲存過程前,資料庫已對其進行了語法和句法分析,並給出了優化執行方案。這種已經編譯好的過程可極大地改善SQL語句的效能。 由於執行SQL語句的大部分工作已經完成,所以儲存過程能以極快的速度執行。
* 可以降低網路的通訊量。
* 使體現企業規則的運算程式放入資料庫伺服器中,以便:
# 集中控制。
# 當企業規則發生變化時在伺服器中改變儲存過程即可,無須修改任何應用程式。企業規則的特點是要經常變化,如果把體現企業規則的運算程式放入應用程式中,則當企業規則發生變化時,就需要修改應用程式工作量非常之大(修改、發行和安裝應用程式)。如果把體現企業規則的 運算放入儲存過程中,則當企業規則發生變化時,只要修改儲存過程就可以了,應用程式無須任何變化。
資料庫儲存過程的實質就是部署在資料庫端的一組定義程式碼以及SQL。
利用SQL的語言可以編寫對於資料庫訪問的儲存過程,其語法如下:
CREATE PROC[EDURE] procedure_name [;number] [ {@parameter data_type} ][VARYING] [= default] [OUTPUT] ] [,...n] [WITH { RECOMPILE | ENCRYPTION | RECOMPILE, ENCRYPTION } ] [FOR REPLICATION] AS sql_statement [...n] |
[ ]內的內容是可選項,而()內的內容是必選項, 例: 若使用者想建立一個刪除表tmp中的記錄的儲存過程Select_delete可寫為:
Create Proc select_del As Delete tmp |
例:使用者想查詢tmp表中某年的資料的儲存過程
create proc select_query @year int as select * from tmp where year=@year |
在這裡@year是儲存過程的引數 例:該儲存過程是從某結點n開始找到最上層的父親結點,這種經常用到的過程可以由儲存過程來擔當,在網頁中重複使用達到共享。 空:表示該結點為頂層結點 fjdid(父結點編號) 結點n 非空:表示該結點的父親結點號 dwmc(單位名稱)
CREATE proc search_dwmc @dwidold int,@dwmcresult varchar(100) output as declare @stop int declare @result varchar(80) declare @dwmc varchar |
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16436858/viewspace-666204/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle 儲存過程 定義 和 優點 與 函式 區別Oracle儲存過程函式
- SQL Server儲存過程的優缺點SQLServer儲存過程
- Oracle中定義package以及儲存過程的使用OraclePackage儲存過程
- 帶你快速瞭解HTMLHTML
- MySQL儲存過程詳解 mysql 儲存過程MySql儲存過程
- Oracle儲存過程中定義多個遊標Oracle儲存過程
- 儲存過程的詳解儲存過程
- 檢視錶,儲存過程,觸發器定義的方法儲存過程觸發器
- MySQL儲存過程詳解 mysql 儲存過程linkMySql儲存過程
- 把自編儲存過程設定為系統儲存過程儲存過程
- 儲存過程定義多個遊標多個begin儲存過程
- 帶輸出引數的儲存過程儲存過程
- 基礎——使用檢視和儲存過程的優缺點儲存過程
- mysql 儲存過程中變數的定義與賦值操作MySql儲存過程變數賦值
- 這一次帶你徹底瞭解前端本地儲存前端
- 你真的瞭解Innodb儲存引擎?儲存引擎
- MySQL 儲存過程定義條件和異常處理MySql儲存過程
- 你真的瞭解python嗎?這篇文章帶你快速瞭解!Python
- 動態呼叫帶引數的儲存過程儲存過程
- 帶有儲存過程的組合查詢儲存過程
- mongo 儲存過程詳解Go儲存過程
- mysql儲存過程詳解MySql儲存過程
- 儲存過程輸入引數型別定義引起的問題儲存過程型別
- MySql儲存過程的作用及語法MySql儲存過程
- SQL SERVER儲存過程AS和GO的含義SQLServer儲存過程Go
- 瞭解使用mysql 的檢視、儲存過程、觸發器、函式....MySql儲存過程觸發器函式
- oracle儲存過程編譯死掉的原因及解決(zt)Oracle儲存過程編譯
- 儲存過程優化(DBMS_HPROF)儲存過程優化
- 深入mysql建立自定義函式與儲存過程的詳解MySql函式儲存過程
- 從sybase的儲存過程轉向oracle的儲存過程儲存過程Oracle
- 使用儲存過程做orm有什麼優缺點嗎?儲存過程ORM
- 帶你瞭解遊戲陪玩系統原始碼前端常用的儲存方式遊戲原始碼前端
- mysql-定時呼叫儲存過程MySql儲存過程
- MySQL儲存過程語句及呼叫MySql儲存過程
- MySQL自定義函式與儲存過程MySql函式儲存過程
- 使用帶有輸出引數的儲存過程儲存過程
- 儲存過程儲存過程
- 帶你快速瞭解 MongoDB 分散式叢集MongoDB分散式