含義:
一組預先編譯好的sql語句的集合,可理解成批處理語句。
作用:1、提高**的重用性;
2、簡化操作;
3、減少了編譯次數並且減少了和資料庫伺服器的連線次數,提高了效率。
一、建立:
create procedure 儲存過程名(引數列表)
begin
儲存過程體(一組合法的sql語句)
end
注意:
1、引數列表包含三部分:
引數模式 引數名 引數型別
如:in name varchar(20)
引數模式:
in:該引數可以作為輸入,即需要呼叫方傳入值
out:該引數可以作為輸出,即可以作為返回值
inout:該引數即可作為輸入,又可作為輸出,即即需要傳入值,又可以返回值。
2、若儲存過程體僅有一條語句,則begin,end可省略。儲存過程體中的每條sql語句結尾都要求加分號,其結尾可使用delimiter 重新設定。
語法:
delimiter 結束標記
如:delimiter $
二、呼叫:call 儲存過程名(實參列表);
1、空參列表:
#案例:插入到admin表中五條記錄:
delimiter $
create procedure myp1()
begin
insert into admin(username, `password`)
values('john','000000'), ('jack','000000'),('lily','000000'),('rose','000000'),('tom','000000')
end $
call myp1 $
2、帶in模式引數的儲存過程:
#案例1:建立儲存過程實現,根據女神名,查詢對應男神資訊
create procedure myp2(in beautyname varchar(20))
begin
select bo.*
from boys bo
right join beauty b on bo.id = b.boyfriend_id
where b.name = beautyname;
end $
call myp2('rose')$
#案例:建立儲存過程實現使用者是否登入成功:
create procedure myp3(in username varchar(20), in password varchar(20))
begin
declare result int default 0; # 宣告並初始化
select count(*) into result # 賦值
from admin
where admin.username = username
adn admin.password = password;
select if(result > 0, '成功','失敗'); # 使用
end $
call myp3('張飛','8888')$
3、帶out模式的儲存過程
#案例:根據女神名,返回對應的男神名
create procedure myp4(in beautyname varchar(20), out boyname varchar(20))
begin
select bo.boyname
from boys bo
inner join beauty b on bo.id = b.bogfriend_id
where b.name = beautyname;
end $
call myp4(『小昭』, @bname) $
select @bname$
#案例:根據女神名,返回對應的男神名和男神魅力值
create procedure myp5(in beautyname varchar(20), out boyname varchar(20), out usercp int )
begin
select bo.boyname, bo.usercp into boyname, usercp
from boys bo
inner join beauty b on bo.id = b.bogfriend_id
where b.name = beautyname;
end $
call myp5('小昭',@bname,@usercp)$
4、帶intout模式引數的儲存過程:
#案例:傳入a和b兩個值,最終a和b都翻倍並返回
create procedure myp6(inout a int, inout b int)
begin
set a = a*2;
set b = b*2;
end $
set @m = 10$
set @n = 20$
call myp6(@m, @n)$
三、刪除:drop procedure 儲存過程名
四、檢視儲存過程的資訊:show create procedure 儲存過程名
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語句加上控制語句的集合,靈活性高 在伺服器端儲存,客戶端呼叫時,降低網路負載 可多次重複被呼叫,可隨時修改,不影響客戶端呼叫...