国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

mysql數據庫存儲過程之游標(光標cursor)詳解

瀏覽:2日期:2023-07-05 19:48:16
目錄mysql存儲過程之游標(光標cursor)一、語法二、案例三、條件處理程序mysql存儲過程-游標 CURSOR FOR總結mysql存儲過程之游標(光標cursor)

游標是用來存儲查詢結果集的數據類型,在存儲過程和函數中可以使用游標對結果集進行循環的處理。

游標的使用包括游標的聲明、open、fetch和close。

一、語法#聲明游標declare 游標名稱 cursor for 查詢語句;#開啟游標open 游標名稱;#獲取游標記錄fetch 游標名稱 into 變量[,變量];#關閉游標close 游標名稱;二、案例

根據傳入的參數uage,來查詢用戶表tb_user中,所有的用戶年齡小于等于uage的用戶姓名name和專業profession,并將用戶的姓名和專業插入到所創建的一張新表id,name,profession中。

邏輯

#A.聲明游標,存儲查詢結果集

#B.創建表結構

#C.開啟游標

#D.獲取游標記錄

#E.插入數據到新表中

#F.關閉游標

#創建一個存儲過程create procedure p11(in uage int)begin? declare uname varchar(100);#聲明變量? declary upro varchar(100);#聲明變量#聲明游標記錄符合條件的結果集? declare u_cursor cursor for select name,profession from tb_user where age <= uage;? drop table if exists tb_user_pro; ?#tb_user_pro表如果存在,就刪除。? create table if exists tb_user_pro( ?#if exists代表表存在就刪除了再創建表? id int primary key auto_increment,? name varchar(100),? profession varchar(100)? );? open u_cursor;#開啟游標#while循環獲取游標當中的數據? while true do? fetch u_cursor into uname,upro;#獲取游標中的記錄? insert into tb_user_pro values(null,uname,upro);#將獲取到的數據插入表結構中? end while;? close u_cursor;#關閉游標end;#查詢年齡小于30call p11(30);三、條件處理程序

條件處理程序handler可以用來定義在流程控制結構執行過程中遇到問題時相應的處理步驟。

1、語法

declare handler_action handler for condition_value [,condition_value]... statement;

handler_action

continue:繼續執行當前程序exit:終止執行當前程序

condition_value

SQLSTATE sqlstate_value:狀態碼,如02000SQLwarning:所有以01開頭的SQLstate代碼的簡寫not found:所有以02開頭的SQLSTATE代碼的簡寫SQLexception:所有沒有被SQLwarning或not found捕獲的SQLstate代碼的簡寫

2、解決報錯

#創建一個存儲過程create procedure p11(in uage int)begin? declare uname varchar(100);#聲明變量? declary upro varchar(100);#聲明變量#聲明游標記錄符合條件的結果集? declare u_cursor cursor for select name,profession from tb_user where age <= uage;#聲明一個條件處理程序,當滿足SQL狀態碼為02000的時候,觸發退出操作,退出的時候將游標關閉? declare exit handler for SQLSTATE '02000' close u_cursorl;#聲明一個條件處理程序,當滿足SQL狀態碼為02000的時候,觸發退出操作,退出的時候將游標關閉? declare exit handler for not found close u_cursorl;drop table if exists tb_user_pro; ?#tb_user_pro表如果存在,就刪除。? create table if exists tb_user_pro( ?#if exists代表表存在就刪除了再創建表? id int primary key auto_increment,? name varchar(100),? profession varchar(100)? );? open u_cursor;#開啟游標#while循環獲取游標當中的數據? while true do? fetch u_cursor into uname,upro;#獲取游標中的記錄? insert into tb_user_pro values(null,uname,upro);#將獲取到的數據插入表結構中? end while;? close u_cursor;#關閉游標end;#查詢年齡小于30call p11(30);mysql存儲過程-游標 CURSOR FOR

1、游標

游標是一個存儲在MySQL服務器上的數據庫查詢,它不是一條select語句,而是被該語句所檢索出來的結果集。

2、定義游標

這個過程并沒有檢索到數據,只是定義要使用的select語句

DECLARE t_cursor CURSOR FOR SELECT t.id FROM t_dept t;

3、如果沒有數據返回或者select出現異常,程序繼續,并將變量done設為true

DECLARE CONTINUE HANDLER FOR NOT FOUND SET done=true;

4、打開游標

open t_cursor;

5、使用游標

使用fetch來取出數據

fetch t_cursor in variable;

6、關閉游標

close t_cursor;

過程:定義游標(使用游標前必須先定義游標)—》打開游標—》關閉游標

總結

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持好吧啦網。

標簽: MySQL 數據庫
相關文章:
主站蜘蛛池模板: 国产成人免费a在线资源 | 人久热欧美在线观看量量 | 国产成人一区在线播放 | 亚洲图片一区二区 | 国产亚洲精品影达达兔 | 久久综合狠狠综合久久97色 | baoyu121永久免费网站 | 欧美性高清视频免费看www | 国产一区二区成人 | 日韩美女一级片 | 美女扒开腿让男生桶爽网站 | 久久中文字幕在线观看 | 中文字幕乱码视频32 | 欧美在线观看高清一二三区 | 波多野结衣一区二区在线 | 国产成人精品亚洲日本语音 | 手机在线看a | 久久久久欧美国产精品 | 男人的天堂在线免费视频 | 草草视频在线免费观看 | 欧美成人午夜做爰视频在线观看 | 97精品国产手机 | 国产成人综合网亚洲欧美在线 | 亚洲精品亚洲人成在线 | 久草福利社 | 91久久香蕉青青草原娱乐 | 真实偷清晰对白在线视频 | 杨幂丝袜国产福利视频 | 美美女高清毛片视频免费观看 | 欧美成人免费全部色播 | 日本www在线播放 | 2019天天操天天干天天透 | 久草视频在线网 | 国产成人久久久精品一区二区三区 | 欧美视频网站在线观看 | 国产精品久久毛片蜜月 | 成年人午夜网站 | 男人天堂中文字幕 | 99视频有精品视频免费观看 | 看全色黄大色黄大片女图片 | 美国毛片亚洲社区在线观看 |