MySQL的深入淺出(八) 儲存過程

2021-09-26 10:34:02 字數 1936 閱讀 9845

儲存過程(stored procedure)是一種在資料庫中儲存複雜程式,以便外部程式呼叫的一種資料庫物件

儲存過程就是具有名字的一段**,用來完成乙個特定的功能。

建立的儲存過程儲存在資料庫的資料字典中

作用:大大提高效率(儲存過程本身執行速度非常快,呼叫存 儲過程大大減少資料庫互動次數);提高**重用性

引數型別

in表示呼叫者向過程傳入值(傳入值可以是字面量或變數)

out表示過程向呼叫者傳出值(可以返回多個值)(傳出值只能是變數)

inout

既表示呼叫者向過程傳入值,又表示過程向呼叫者傳出值(值只能是變數)

1.無參形式

mysql>delimiter $

mysql> create procedure pro_show()

-> begin

-> select * from customer;

-> end$

mysql>delimiter ;

mysql> call pro_show()

;#儲存過程的使用

2. 帶in引數

mysql> create procedure pro_askorder (in cuid int(11

))-> begin

-> select c_name from commodity where c_id in (select o_cid from `order` where o_cuid = cuid);-

> end$

3.帶in和out引數

mysql>delimiter $

mysql> create procedure pro_cnum

(in cid int(11

),out cnum int(11

))-> begin

-> select c_num into cnum from commodity where c_id =cid;

-> end$

mysql>delimiter ;

mysql>set @cn=-

1;#設定變數

mysql>call pro_cnum(12

,@cn

);mysql>select @cn;+

------+

|@cn|+

------+

|6|+

----

--+

4.帶inout引數

mysql>delimiter $

mysql> create procedure pro4

(inout p_inout int)-

> begin

-> select p_inout;

-> set p_inout =2;

-> select p_inout;

-> end$

mysql>delimiter ;

mysql> call pro4

(@en

);#沒有初始化的變數預設為null+--

-------

+| p_inout |+--

-------

+| null |+--

-------

+1 row in set (

0.00 sec)+--

-------

+| p_inout |+--

-------

+|2|

+---------

+1 row in set (

0.01 sec)

剩下的內容我會在學習過程中補充的!

mysql深入淺出的筆記 儲存過程一

1.儲存過程和函式.儲存過程和函式是事先經過編譯並儲存在資料庫中的一段sql語句的集合,呼叫儲存過程和函式可以簡化應用開發人員的很多任務作,減少資料在資料庫中和應用伺服器之間的傳說胡,對於提高資料處理的效率有很多好處.2.儲存過程和函式的區別 1 函式必須有返回值,而儲存過程沒有 2 儲存過程的引數...

深入淺出MySQL

說明索引的設計和使用 sql中的安全問題 常用sql技巧 sql優化過程 優化資料庫物件 鎖問題 本站 深入淺出mysql 個人部落格 深入淺出mysql 1 設計索引原則 2 小常識 3 btree索引 1 了解sql執行頻率 使用show session global statusa來獲得伺服器...

深入淺出Mysql(四)

大批量插入資料優化 1 對應myisam型別的表,可以通過以下方式快速的匯入大量資料 alter table tablname disable keys loading the data alter table tablname enable keys 這兩個命令用來開啟或者關閉myisam表非唯一...