############### 存儲過程 ##############
"""
3.存儲過程
那么什么是存儲過程呢?怎么創建、查看和刪除存儲過程呢?存儲過程有什么優點?
存儲過程:類似於函數(方法),簡單的說存儲過程是為了完成某個數據庫中的特定功能而編寫的語句集合,
該語句集包括SQL語句(對數據的增刪改查)、條件語句和循環語句等。
1. 查看現有的存儲過程
show procedure status;
2 .刪除存儲過程
drop procedure 存儲過程名稱;
3. 調用 存儲過程
call 存儲過程名稱(參數入/出類型 參數名 數據類型);
#############################
4.創建存儲過程
# 1.體會封裝
create procedure p1 ()
begin
select * from account;
end
# 2, SQL 體會參數
create procedure p2(in i int,out n varchar(50))
begin
select name into n from account where id = i;
end
-- 調用
set @name =null;
CALL p2(1,@name);
select @name;
注意1: mysql中有三種出入參數類型:分別為:1. in 入參類型 2.out 出參類型 3. inout 出入參類型
注意2: into 關鍵字 可以 將前面字段的查詢結果 執行 給 into 后面的變量.
#3.SQL 體會控制
create procedure p3(in x int,in c char(1))
begin
if c ='d' then
select * from account where money >x;
else
select * from account where money <x;
end if;
end
#4.體會循環:計算1-100累加的和,並且返回計算結果.
create procedure p4(inout n int)
begin
DECLARE sum int default 0; -- 設置總和變量,並且指定初始值0
declare i int; -- 聲明變量
set i = 0; -- 通過set為變量設置值
while i<=n DO -- 開始循環
set sum = sum +i;
set i = i+1;
end while; -- 結束循環
select sum; -- 提供結果
set n = sum;--將計算結果提供給 輸出變量 n;
end;
-- 調用:
set @n = 100;
call p4(@n);
select @n;
"""
