MySql建立儲存過程

2021-10-10 05:06:39 字數 1772 閱讀 2456

mysql 建立儲存過程

一、儲存過程的建立和呼叫

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

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

1.建立

– create procedure 儲存過程名(引數1,引數2,·····)

–儲存過程開始和結束符號:begin … end

create procedure add_matches(in matcheno integer,in teamno integer,in playerno integer,in won integer,in lost integer)

begin

insert into matches values(matcheno,teamno,playerno,won,lost);

end2.呼叫儲存過程

–變數賦值:set @matcheno =1 ;用@符宣告變數

set @matcheno=4;

set @teamno=4;

set @playerno=4;

set @won=4;

set @lost=4;

call add_matches(@matcheno,@teamno,@playerno,@won,@lost);

3.查詢儲存過程

1)查詢全部儲存過程:show procedure status;

2)查詢單個儲存過程:show procedure status like 『add_matches』;

4.刪除儲存過程

drop procedure add_matches;

二.儲存過程的引數

mysql儲存過程的引數用在儲存過程的定義,共有三種引數型別,in,out,inout,形式如:

create procedure 儲存過程名([[in |out |inout ] 引數名 資料類形…])

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

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

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

三、mysql儲存過程的控制語句

1) if-then-else 語句:

create procedure add_matches(in type integer,in matcheno integer)

begin

if type =0 then

delete from matches where matcheno=matcheno ;

else

select * from matches where matcheno=matcheno;

end2)case語句:

create procedure add_matches(in type integer,in matcheno integer)

begin

set var=type;

case var

when 0 then

delete from matches where matcheno=matcheno ;

when 1 then

select * from matches where matcheno=matcheno;

else

select * from matches where matcheno=matcheno;

end case;

end

MySQL建立儲存過程

在開發過程中,經常會遇到重複使用某乙個功能的情況,為此,mysql引入了儲存過程 儲存過程 就是一條或多條sql語句的集合,當對資料庫進行一系列複雜操作時,儲存過程可以將這些複雜操縱,封裝成乙個 塊,以便重複使用,大大減少資料庫開發人員的工作量 使用create procedure語句 create...

MYSQL 建立儲存過程

無引數儲存過程 delimiter create procedure myfist proc 建立儲存過程 begin select stu id from score where grade 80 and c name 計算機 select name from student where id i...

mysql建立儲存過程

坑一 mysql建立儲存過程中,儲存過程的輸入引數變數命名不應該與欄位名相同。如果相同,導致的結果就是引數的值將不會是你傳入的值,而是變成每條記錄的那個欄位的值。如果在刪除操作時,將會刪除整張表的記錄,是非常危險的。刪除儲存過程 drop procedure if exists pro test 建...