1.什麼是儲存過程?
其實儲存過程就是預編譯了的sql語句。
2.優點:
(1)提速: 只需要經過一次預編譯,以後就可以直接呼叫該儲存過程。如若有數百次的sql語句執行,儲存過程更快速,因為其經過了預編譯。
(2)省流量:如有數百條sql語句需要執行,就要傳送數百條sql語句的流量,而儲存過程一條即可。
(3)安全:沒有許可權的使用者可以有控制的情況下間接地執行儲存過程。並且儲存過程是乙個結果,其中有多個相關的動作,一旦執行,多個動作是關聯執行的,儲存了資料在安全性和完整性。
(4)靈活:儲存過程能像程式一樣,實現多種功能。
缺點:
(1)類似面向過程,程式設計當邏輯複雜時,實現起來是挺麻煩的。
(2)除錯麻煩,好像沒什麼比較好的工具,經常要列印來調。
(3)間接加重了資料庫的負擔,快取併發嚴較多的時候比較明顯。
mysql儲存過程中的關鍵語法:
delimiter // 宣告語句結束符,用於區分;
create procedure exercise(in j_in int) 宣告儲存過程
begin …. end 儲存過程開始和結束符號
set @j_in=1 變數賦值
declare l_int int unsigned default 4000000; 變數定義
delimiter // :相當於告訴mysql這是乙個儲存過程,等會有;的時候不要停止或者執行,直到出現delimiter;才表示該條儲存過程結束,例子如下:
mysql> delimiter //
mysql> create procedure exercise1(in j_in int)
-> begin
-> select j_in; –顯示當前j_in的值
-> set j_in = 2; –把當前j_in的值設定為2
-> select j_in; –顯示當前j_in的值
-> end;
-> // –結束
query ok, 0 rows affected (0.00 sec)
mysql> delimiter ; –結束當前儲存過程
mysql> call exercise1(@j_in); –執行該儲存過程
+——+
| j_in |
+——+
| 4 | –先前設定為4,未貼**
+——+
1 row in set (0.00 sec)
+——+
| j_in |
+——+
| 2 |
+——+
1 row in set (0.00 sec)
query ok, 0 rows affected (0.00 sec)
這裡涉及到乙個元素的定義,in以及out ,in 可以在儲存過程外面定義他的值 ,如上例中,我在執行call cxercise1(@j_in)前執行,set @j_in = 3 ,那麼第乙個列印出來的select @j_in的值 就不是4,而是3.
out:在儲存過程外面不可定義他的值,只能在儲存過程中定義。
今天先這麼多
mysql語法例項 mysql 儲存過程語法及例項
1 下面為乙個儲存過程的定義過程 create procedure proc name in parameter integer begin declare variable varchar 20 if parameter 1 then set variable mysql else set var...
MySQL 儲存過程入門
儲存過程是帶有邏輯的sql語句,優點是執行效率高。缺點是可移植性差 1 儲存過程語法 delimiter 宣告結束符 create procedure pro test 建立儲存過程 儲存過程名稱 引數列表 begin select from employee 可以寫多條sql語句 sql語句 流程...
MySQL儲存過程入門
在本教程中,我們將逐步介紹如何使用create procedure語句開發第乙個mysql儲存過程。另外,我們將向您展示如何從sql語句呼叫儲存過程。大多數用於mysql的gui工具允許您通過直觀的介面建立新的儲存過程。我們就先簡單介紹一下 工具中如何建立儲存過程。首先,單擊右鍵 函式 選擇如圖 新...