MYSQL儲存過程入門1 語法以及in,out區別

2021-07-03 02:27:34 字數 1580 閱讀 9257

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工具允許您通過直觀的介面建立新的儲存過程。我們就先簡單介紹一下 工具中如何建立儲存過程。首先,單擊右鍵 函式 選擇如圖 新...