原文鏈接http://zhhll.icu/2021/01/03/%E6%95%B0%E6%8D%AE%E5%BA%93/%E5%85%B3%E7%B3%BB%E5%9E%8B%E6%95%B0%E6%8D%AE%E5%BA%93/MySQL/MySQL%E5%AD%98%E5%82%A8%E8%BF%87%E7%A8%8B/
MySQL存盤程序
存盤程序是一組預先編譯好的SQL陳述句的集合
好處:
- 提高了代碼的重用性
- 簡化操作
- 減少了編譯次數并且減少了和資料庫連接次數,提高效率
創建存盤程序
#語法 引數串列包含三部分 引數模式 引數名 引數型別 如 IN name varchar(20)
# 如果begin end中只有一條陳述句,begin end可以省略
# 存盤程序體的每個SQL陳述句結尾都要使用分號,所以需要使用delimiter重新設定結束標記
create procedure 存盤程序名(引數串列)
begin
存盤程序體
end
引數模式
- IN 該引數可以作為輸入,需要呼叫方傳入
- OUT 該引數可以作為輸出,作為回傳值
- INOUT 該引數既可以作為輸入,也可以作為輸出
執行存盤程序
call 存盤程序名(引數串列)
洗掉存盤程序
drop procedure 存盤程序名
查看存盤程序資訊
show create procedure 存盤程序名;
示例
delimiter $ #更改結束符
create procedure mypro(IN stu_id int, #入參 學生id
out stu_name varchar(20), #返參 學生名
out class_name varchar(20), #返參 班級名
inout a int) #測驗inout
begin
select s.name,c.name into stu_name,class_name #將查到的學生名和班級名賦值給返參stu_name,class_name stu_name,class_name處于用戶變數
from student s
join class c on s.classid = c.id
where s.id = stu_id; #根據學生id查詢學生名和班級名
set a = a * 2; #給inout引數賦值 a是用戶變數
end $
delimiter ; #結束符改回來
set @m=10; #設定變數
call mypro(1,@stu_name,@class_name,@m);
select @stu_name,@class_name,@m; #查詢結果
由于本身的博客百度沒有收錄,博客地址http://zhhll.icu
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/259958.html
標籤:MySQL
上一篇:Doris開發手記1:解決蛋疼的MySQL 8.0連接問題
下一篇:虧掉一套房換來的抖音直播經驗!
