mysql 儲存過程

2021-10-01 22:26:48 字數 2532 閱讀 3633

儲存過程:

定義:一組可程式設計的函式,是試了完成特定的功能的sql的集合;

特點:將複雜的操作封裝起來,簡化對sql的呼叫;

批量處理;

方便使用;

儲存過程的建立和呼叫:

注意:系統預設每條sql語句以;結尾,「delimiter 符合」表示修改sql的結束符號。因為儲存過程中有多條sql語句,因此需要先修改結束符,

等待儲存過程建立完成後可以再換回原有的分隔符。

建立:儲存過程建立後會長久儲存。    

(1) delimiter //

(2)create procedure show_tables()  #此處注意要加()

begin 

show tables;

end //

(3)delimiter ;

呼叫:call show_tables();  #此處寫儲存過程的名稱()

檢視儲存過程:

檢視sql中所有的儲存過程:

show procedure status;

檢視當前資料庫中所有的儲存過程:

show procedure status where db = 'db_name';

檢視建立細節:

show create procedure show_tables;

刪除: 

drop procedure show_tables;

儲存過程的begin...end中定義變數來記錄某個值

declare 變數名1,變數名2... 型別 default 預設值,如declare count_tables int default 0;

儲存過程中給變數賦值

方式1:set 變數名 = 值;

當時2:使用select 

select count(*) into 變數名 from 表;

注意:儲存過程中定義的變數只能在這個儲存過程中使用。

儲存過程的引數傳遞:

引數型別:

in:傳入引數

out:傳出引數

inout:既能當輸入又能當輸出

-->select * from employee;

e_no    e_name  d_no salary

1001    張三    10    800

1002    李四    20    1000

1003    王五    30    1600

1004    趙六    40    2000

1005    田七    50    2500

1006    康八    20    3500

1001    張飛    10    850

1007    關羽    20    1050

1008    劉備    30    1650

1009    諸葛亮    40    2050

1010    曹操    50    2550

例子:查詢指定姓名的員工資訊;

第一步:建立乙個儲存過程,並指定in引數;

delimiter //

create procedure get_e_info_by_name(in in_name varchar(255))

begin

select * from employee where e_name = in_name;

end //

delimiter ;

第二步:呼叫儲存過程時傳入引數

call get_e_info_by_name('張三');

例子:查詢指定姓名的員工工資

第一步:建立乙個儲存過程,含in,out引數

delimiter //

create procedure get_e_salay_by_name(in in_name varchar(255),out out_salay float)

begin

select salary into out_salay from employee where e_name = in_name;

end //

delimiter ;

第二步:call get_e_salay_by_name('張三',@get_salary); 

呼叫儲存過程                    out引數前要加@符號

第三步:檢視結果;   

select @get_salary;

例子:inout引數例項

第一步:建立儲存過程含inout引數

delimiter //

create procedure test_in_out(inout para varchar(255))

begin

set para = 'world';

end //

delimiter ;

第二步:定義para變數,並呼叫儲存過程;

set @para = 'hello';

call test_in_out(@para)

第三步:檢視結果:

select @para;

#world

mysql儲存過程 MySQL儲存過程

在本節中,您將逐步學習如何在mysql中編寫和開發儲存過程。首先,我們向您介紹儲存過程的概念,並討論何時使用它。然後,展示如何使用過程 的基本元素,如建立儲存過程的語句,if else,case,loop,儲存過程的引數。下面每個教程都包含了易於理解的示例和詳細的說明。如果您瀏覽並學習所有教程,您可...

mysql 儲存過程 mysql 儲存過程

建立 為建立儲存過程的結束標誌,使用delimiter 可更改標誌 格式create procedure begin sqlend create procedure myprocedure in param integer begin select from tb role where tb rol...

mysql 儲存過程 MySQL儲存過程

目錄 儲存過程 簡介是一組為了完成特定功能的sql語句集合 比傳統sql速度更快 執行效率更高 儲存過程的優點 執行一次後,會將生成的二進位制 駐留緩衝區,提高執行效率 sql語句加上控制語句的集合,靈活性高 在伺服器端儲存,客戶端呼叫時,降低網路負載 可多次重複被呼叫,可隨時修改,不影響客戶端呼叫...