[b]一、儲存過程[/b]
儲存過程是一組為了完成特定功能的sql語句集,經編譯後儲存在資料庫中,使用者通過指定的儲存過程的名字、並給出相關引數來執行它。
[b]二、優點:[/b]
1、較快的執行速度。如果某一操作包含大量的sql語句或者分別被多次執行,那麼儲存過程比批處理的執行速度要快。因為儲存過程是預編譯的,在初次執行時,優化器對其進行分析優化,以後執行就不需要再次編譯了。而批處理每次都需要編譯和分析。
2、減少網路流量。呼叫儲存過程,傳輸的僅僅是呼叫語句。
3、增強了sql語言的功能和靈活,儲存過程可以用流控制語句編寫,有很強的靈活性,可以完成比較複雜的運算。
[b]三、建立:[/b]
1、mysql儲存過程建立的格式:create procedure 過程名 ([過程引數[,...]]) 過程體
2、這裡先舉個例子:
mysql> delimiter //
mysql> create procedure proc1(out s int)
-> begin
-> select count(*) into s from user;
-> end
-> //
注:(1)delimiter //是分割符的意思,
(2)儲存過程根據需要可能會有輸入、輸出、輸入輸出引數,這裡有乙個輸出引數s,型別是int型,如果有多個引數用","分割開。
(3)過程體的開始與結束使用begin與end進行標識。
(4) 宣告分割符
其實,關於宣告分割符,上面的註解已經寫得很清楚,不需要多說,只是稍微要注意一點的是:如果是用mysql的administrator管理工具時,可以直接建立,不再需要宣告。
(5) 引數
mysql儲存過程的引數用在儲存過程的定義,共有三種引數型別,in,out,inout,形式如:
create procedure([[in |out |inout ] 引數名 資料類形...])
in 輸入引數:表示該引數的值必須在呼叫儲存過程時指定,在儲存過程中修改該引數的值不能被返回,為預設值
out 輸出引數:該值可在儲存過程內部被改變,並可返回
inout 輸入輸出引數:呼叫時指定,並且可被改變和返回
[b]四、呼叫:[/b]
用call和你過程名以及乙個括號,括號裡面根據需要,加入引數,引數包括輸入引數、輸出引數、輸入輸出引數。
[b]五、修改、刪除[/b]
alter procedure 儲存過程名
drop procedure 儲存過程名
mysql 儲存過程(一)
遍歷庫中所有表,更新指定欄位為指定的值。有的表存在該欄位,有的則不存在 drop procedure ifexists update orgcode delimiter create procedure update orgcode in send system varchar 50 in uplo...
mysql儲存過程(一)
使用mysql也挺久了,但是對於mysql的儲存過程一直沒有研究過,最近得空看了一些資料,對儲存過程算是略有了解吧,下面就是學習過程中的一些心得體會了。在正式介紹儲存過程之前我們需要知道什麼是儲存過程?通過上述語句我們可以提煉以下幾點 1.儲存過程是特定功能sql語句的集合 2.儲存過程儲存在資料庫...
mysql儲存過程 MySQL儲存過程
在本節中,您將逐步學習如何在mysql中編寫和開發儲存過程。首先,我們向您介紹儲存過程的概念,並討論何時使用它。然後,展示如何使用過程 的基本元素,如建立儲存過程的語句,if else,case,loop,儲存過程的引數。下面每個教程都包含了易於理解的示例和詳細的說明。如果您瀏覽並學習所有教程,您可...