MYSQL儲存過程一

2021-08-27 12:14:00 字數 1262 閱讀 7925

[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,儲存過程的引數。下面每個教程都包含了易於理解的示例和詳細的說明。如果您瀏覽並學習所有教程,您可...