1>MySQL存儲過程的調用
用call和你過程名以及一個括號,括號裏面根據需要,加入參數,參數包括輸入參數、輸出參數、輸入輸出參數。具體的調用方法可以參看上面的例子。
2>MySQL存儲過程的查詢
我們像知道一個數據庫下面有那些表,我們一般採用showtables;進行查看。那麼我們要查看某個數據庫下面的存儲過程,是否也可以採用呢?答案是,我們可以查看某個數據庫下面的存儲過程,但是是令一鍾方式。
我們可以用
selectname from mysql.proc where db=’數據庫名’;
或者
selectroutine_name from information_schema.routines where routine_schema=’數據庫名’;
或者
showprocedure status where db=’數據庫名’;
進行查詢。
如果我們想知道,某個存儲過程的詳細,那我們又該怎麼做呢?是不是也可以像操作表一樣用describe 表名進行查看呢?
答案是:我們可以查看存儲過程的詳細,但是需要用另一種方法:
SHOWCREATE PROCEDURE 數據庫.存儲過程名;
就可以查看當前存儲過程的詳細。
3>MySQL存儲過程的修改
ALTER PROCEDURE
更改用CREATE PROCEDURE 建立的預先指定的存儲過程,其不會影響相關存儲過程或存儲功能。
4>MySQL存儲過程的刪除
刪除一個存儲過程比較簡單,和刪除表一樣:
DROPPROCEDURE
從MySQL的表格中刪除一個或多個存儲過程。
5>MySQL存儲過程的控制語句
6>變量作用域
內部的變量在其作用域範圍內享有更高的優先權,當執行到end。變量時,內部變量消失,此時已經在其作用域外,變量不再可見了,應爲在存儲
過程外再也不能找到這個申明的變量,但是你可以通過out參數或者將其值指派
給會話變量來保存其值。
1. mysql > DELIMITER //
2. mysql > CREATE PROCEDURE proc3()
3. -> begin
4. -> declare x1 varchar(5) default 'outer';
5. -> begin
6. -> declare x1 varchar(5) default 'inner';
7. -> select x1;
8. -> end;
9. -> select x1;
10. -> end;
11. -> //
12.mysql > DELIMITER ;
7>條件語句
if-then -else語句
1. mysql > DELIMITER //
2. mysql > CREATE PROCEDURE proc2(IN parameter int)
3. -> begin
4. -> declare var int;
5. -> set var=parameter+1;
6. -> if var=0 then
7. -> insert into t values(17);
8. -> end if;
9. -> if parameter=0 then
10. -> update t set s1=s1+1;
11. -> else
12. -> update t set s1=s1+2;
13. -> end if;
14. -> end;
15. -> //
16.mysql > DELIMITER ;
8>case語句:
1. mysql > DELIMITER //
2. mysql > CREATE PROCEDURE proc3 (in parameter int)
3. -> begin
4. -> declare var int;
5. -> set var=parameter+1;
6. -> case var
7. -> when 0 then
8. -> insert into t values(17);
9. -> when 1 then
10. -> insert into t values(18);
11. -> else
12. -> insert into t values(19);
13. -> end case;
14. -> end;
15. -> //
16.mysql > DELIMITER ;
case
when var=0 then
insert into t values(30);
when var>0 then
when var<0 then
else
end case
9>循環語句
while ···· end while:
1. mysql > DELIMITER //
2. mysql > CREATE PROCEDURE proc4()
3. -> begin
4. -> declare var int;
5. -> set var=0;
6. -> while var<6 do
7. -> insert into t values(var);
8. -> set var=var+1;
9. -> end while;
10. -> end;
11. -> //
12.mysql > DELIMITER ;
while條件 do
--循環體
endwhile
repeat···· end repeat:
它在執行操作後檢查結果,而while則是執行前進行檢查。
1. mysql > DELIMITER //
2. mysql > CREATE PROCEDURE proc5 ()
3. -> begin
4. -> declare v int;
5. -> set v=0;
6. -> repeat
7. -> insert into t values(v);
8. -> set v=v+1;
9. -> until v>=5
10. -> end repeat;
11. -> end;
12. -> //
13.mysql > DELIMITER ;
repeat
--循環體
until循環條件
endrepeat;
loop ·····endloop:
loop循環不需要初始條件,這點和while 循環相似,同時和repeat循環一樣不需要結束條件, leave語句的意義是離開循環。
1. mysql > DELIMITER //
2. mysql > CREATE PROCEDURE proc6 ()
3. -> begin
4. -> declare v int;
5. -> set v=0;
6. -> LOOP_LABLE:loop
7. -> insert into t values(v);
8. -> set v=v+1;
9. -> if v >=5 then
10. -> leave LOOP_LABLE;
11. -> end if;
12. -> end loop;
13. -> end;
14. -> //
15.mysql > DELIMITER ;
10>LABLES 標號:
標號可以用在begin repeat while 或者loop 語句前,語句標號只能在合法的語句前面使用。可以跳出循環,使運行指令達到複合語句的最後一步。
ITERATE迭代
ITERATE:
1. 通過引用複合語句的標號,來從新開始複合語句
2. mysql > DELIMITER //
3. mysql > CREATE PROCEDURE proc10 ()
4. -> begin
5. -> declare v int;
6. -> set v=0;
7. -> LOOP_LABLE:loop
8. -> if v=3 then
9. -> set v=v+1;
10. -> ITERATE LOOP_LABLE;
11. -> end if;
12. -> insert into t values(v);
13. -> set v=v+1;
14. -> if v>=5 then
15. -> leave LOOP_LABLE;
16. -> end if;
17. -> end loop;
18. -> end;
19. -> //
20.mysql > DELIMITER ;
存儲過程調用
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
javaweb工程出現錯誤及解決
nutcore
2020-02-26 00:56:03
MySQL數據庫——用通配符和正則表達式過濾數據(二)
qq_36120793
2020-02-25 00:14:05
MySQL數據庫——過濾數據(一)
qq_36120793
2020-02-25 00:14:05
MySQL數據庫——創建計算字段
qq_36120793
2020-02-25 00:14:05
MySQL數據庫——彙總數據(聚集函數)
qq_36120793
2020-02-25 00:14:04
MySQL數據庫——用通配符和正則表達式過濾數據(一)
qq_36120793
2020-02-25 00:14:04
MySQL數據庫——使用數據處理函數
qq_36120793
2020-02-25 00:13:54
MySQL數據庫——分組數據
qq_36120793
2020-02-25 00:13:54
mysql建表時常用的數據類型
陈多鱼
2020-02-24 18:43:30
MySQL數據庫基礎(必備技能)
wǒ乄冭嘽純
2018-10-20 02:09:15
MySql數據庫基礎操作
Joy_Smile
2018-09-04 17:52:09
Unity 連接操作數據庫
Mr-Miracle
2018-09-03 19:16:34
SQL數據庫簡單語句操作
Mr-Miracle
2018-09-03 19:16:34