一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|數據庫技術|

服務器之家 - 數據庫 - Mysql - MySQL存儲過程圖文實例講解

MySQL存儲過程圖文實例講解

2022-03-09 22:27程裕強 Mysql

雖然MySQL的存儲過程一般情況下是不會使用到的,但是在一些特殊場景中,還是有需求的,下面這篇文章主要給大家介紹了關于MySQL存儲過程的相關資料,需要的朋友可以參考下

MySQL存儲過程

存儲過程是數據庫的一個重要的功能,MySQL 5.0以前并不支持存儲過程,這使得MySQL在應用上大打折扣。好在MySQL 5.0開始支持存儲過程,這樣即可以大大提高數據庫的處理速度,同時也可以提高數據庫編程的靈活性。

 

MySQL存儲過程的創建

語法

CREATE PROCEDURE 過程名([[IN|OUT|INOUT] 參數名 數據類型[,[IN|OUT|INOUT] 參數名 數據類型…]]) [特性 ...] 過程體

DELIMITER //
CREATE PROCEDURE myproc(OUT s int)
  BEGIN
    SELECT COUNT(*) INTO s FROM students;
  END
  //
DELIMITER ;

分隔符

MySQL默認以";"為分隔符,如果沒有聲明分割符,則編譯器會把存儲過程當成SQL語句進行處理,因此編譯過程會報錯,所以要事先用“DELIMITER //”聲明當前段分隔符,讓編譯器把兩個"//"之間的內容當做存儲過程的代碼,不會執行這些代碼;“DELIMITER ;”的意為把分隔符還原。

參數

存儲過程根據需要可能會有輸入、輸出、輸入輸出參數,如果有多個參數用","分割開。MySQL存儲過程的參數用在存儲過程的定義,共有三種參數類型,IN,OUT,INOUT:

IN參數的值必須在調用存儲過程時指定,在存儲過程中修改該參數的值不能被返回,為默認值OUT:該值可在存儲過程內部被改變,并可返回INOUT:調用時指定,并且可被改變和返回

過程體

過程體的開始與結束使用BEGIN與END進行標識。

MySQL存儲過程圖文實例講解

 

1、簡單實例

create procedure demo.p_test1()
begin
-- 使用 declare語句聲明一個變量
declare id int default 0;
declare name varchar(50) default '';
-- 使用set語句給變量賦值
set id=7521;
-- 將users表中id=1的名稱賦值給username
select ename into name from demo.emp where empno=id;
-- 返回變量
select name;
end;

MySQL存儲過程圖文實例講解

 

2、通過游標遍歷結果集

create table demo.test(
	id int,
	cnt varchar(50)
)
create procedure demo.p_test2()
-- 通過游標遍歷結果集
begin
-- 聲明變量
declare id int default 0;
declare name varchar(50) default '';
declare done boolean default 1;
-- 聲明游標
declare rs cursor for SELECT deptno,dname from demo.dept ;
-- 定義異常:
declare continue handler for SQLSTATE '02000' SET done = 0; 
-- 打開游標
open rs;
delete from demo.test;
while done do 
	begin
	  fetch rs into id,name;
    INSERT into demo.test SELECT e.deptno,count(1) from demo.emp e WHERE e.deptno =id group by e.deptno;
   end ;
end while;
-- 關閉游標
close rs;
end;
call demo.p_test2();

MySQL存儲過程圖文實例講解

SELECT * from  demo.test;

MySQL存儲過程圖文實例講解

 

總結

到此這篇關于MySQL存儲過程講解的文章就介紹到這了,更多相關MySQL存儲過程內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!

原文鏈接:https://blog.csdn.net/chengyuqiang/article/details/122562302

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 亚洲www视频 | 摸进老太婆的裤裆小说 | 精品国产品在线18年 | 日本高清免费中文字幕不卡 | chinese国产人妖hd | 视频一区国产精戏刘婷 | 精品一区二区三区五区六区 | 久久久精品日本一区二区三区 | 第一次破苞h| 艹出白浆 | 男女性刺激爽爽免费视频 | 久久久久九九 | 女主被男主做哭失禁高h | 国产日产精品久久久久快鸭 | 色婷亚洲 | 精品无码一区在线观看 | 四虎免费在线观看视频 | 好大夫在线个人空间 | 成人黄色免费网站 | 免费在线观看视频 | 2021国产麻豆剧传媒新片 | 亚洲日本在线观看网址 | 午夜办公室在线观看高清电影 | 四虎精品在线视频 | 四虎免费永久观看 | 俄罗斯12一15处交 | 校园全肉高h湿一女多男 | 亚洲精品综合一二三区在线 | 国产久热精品 | 日本小网站| 亚洲欧美午夜 | 精品区卡一卡2卡三免费 | 国产在线观看精品香蕉v区 国产在线观看a | 美女扒开腿让男生捅 | 国产美女亚洲精品久久久综合 | 天天操丝袜| 久久精品无码一区二区日韩av | 国产自产一区c | 久久久91精品国产一区二区 | 亚洲AV人无码综合在线观看蜜桃 | 2021小妲己永久回家地址 |