日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

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

SQL中的游標、異常處理、存儲函數(shù)及總結(jié)(最新推薦)

瀏覽:306日期:2023-03-06 14:25:45
目錄
  • 一.游標
    • 格式
    • 操作
    • 演示
  • 二.異常處理—handler句柄
    • 格式
    • 演示
  • 三.存儲函數(shù)
    • 格式
    • 參數(shù)說明
    • 演示
  • 四.存儲過程總結(jié)

    一.游標

    游標(cursor)是用來存儲查詢結(jié)果集的數(shù)據(jù)類型,在存儲過程和函數(shù)中可以使用游標對結(jié)果集進行循環(huán)的處理。游標的使用包括游標的聲明、OPEN、FETCH和 CLOSE.

    格式

    操作

    演示

    use test_procedure ;-- 需求:輸入一個部門名,查詢該部門員工的編號、名字、薪資,將查詢的結(jié)果集添加游標delimiter $$create procedure proc21(in in_name varchar(50))begin	-- 定義局部變量	declare var_empno int;	declare var_ename varchar(50);	declare var_sal decimal(7,2);	-- 聲明游標	declare my_cursor cursor for	select empno ,ename ,sal  from emp e,dept d where d.dname =in_name ;	-- 打開游標	open my_cursor;	-- 通過游標獲得值	fetch my_cursor into var_empno,var_ename,var_sal;	select var_empno,var_ename,var_sal;	-- 關閉游標	close my_cursor;end $$delimiter ; call proc21("銷售部");

    運行輸出的結(jié)果是

    但是

    我們發(fā)現(xiàn)符合要求的有多個值,這是因為游標是一條條往下執(zhí)行的所以我們可以用一個循環(huán)

    use test_procedure ;-- 需求:輸入一個部門名,查詢該部門員工的編號、名字、薪資,將查詢的結(jié)果集添加游標delimiter $$create procedure proc21(in in_name varchar(50))begin	-- 定義局部變量	declare var_empno int;	declare var_ename varchar(50);	declare var_sal decimal(7,2);	-- 聲明游標	declare my_cursor cursor for	select empno ,ename ,sal  from emp e,dept d where d.dname =in_name ;	-- 打開游標	open my_cursor;	-- 通過游標獲得值	label:loop	fetch my_cursor into var_empno,var_ename,var_sal;	select var_empno,var_ename,var_sal;	end loop label;	-- 關閉游標	close my_cursor;end $$delimiter ; call proc21("銷售部");

    結(jié)果會報錯

    No data - zero rows fetched, selected, or processed 這句話意思是沒有數(shù)據(jù) 零行 讀取 選擇或處理,就是說循環(huán)到最后沒值了,所以我們需要找到一個條件并及時退出循環(huán),這就需要異常處理—handler句柄。

    二.異常處理—handler句柄

    格式

    注意

    在語法中,變量聲明、游標聲明、handler聲明是必須按照先后順序書寫的,否則創(chuàng)建存儲過程出錯。

    --定義句柄:定義異常的處理方式

    1:異常處理完之后程序該怎么執(zhí)行
    continue :繼續(xù)執(zhí)行剩余代碼

    exit :直接終止程序
    undo:不支持
    2:觸發(fā)條件

    條件碼:1329

    條件名:
    SQLWARNING

    NOT FOUND

    SQLEXCEPTION

    演示

    -- 用條件名use test_procedure ;-- 需求:輸入一個部門名,查詢該部門員工的編號、名字、薪資,將查詢的結(jié)果集添加游標delimiter $$create procedure proc22(in in_name varchar(50))begin	-- 定義局部變量	declare var_empno int;	declare var_ename varchar(50);	declare var_sal decimal(7,2); 	-- 定義標記值	declare flag int default 1;	-- 聲明游標	declare my_cursor cursor for	select empno ,ename ,sal  from emp e,dept d where d.dname =in_name ;	-- 定義句柄,當數(shù)據(jù)未發(fā)現(xiàn)時將標記位設置為0	declare continue handler for  not found set flag=0; 	-- 打開游標	open my_cursor;	-- 通過游標獲得值	label:loop	fetch my_cursor into var_empno,var_ename,var_sal;	if flag=1 then		select var_empno,var_ename,var_sal;	else		leave label;	end if;	end loop label;	-- 關閉游標	close my_cursor;end $$delimiter ; call proc22("銷售部");   -- 用條件碼use test_procedure ;-- 需求:輸入一個部門名,查詢該部門員工的編號、名字、薪資,將查詢的結(jié)果集添加游標delimiter $$create procedure proc23(in in_name varchar(50))begin	-- 定義局部變量	declare var_empno int;	declare var_ename varchar(50);	declare var_sal decimal(7,2); 	-- 定義標記值	declare flag int default 1;	-- 聲明游標	declare my_cursor cursor for	select empno ,ename ,sal  from emp e,dept d where d.dname =in_name ;	-- 定義句柄,當數(shù)據(jù)未發(fā)現(xiàn)時將標記位設置為0	declare continue handler for  1329 set flag=0; 	-- 打開游標	open my_cursor;	-- 通過游標獲得值	label:loop	fetch my_cursor into var_empno,var_ename,var_sal;	if flag=1 then		select var_empno,var_ename,var_sal;	else		leave label;	end if;	end loop label;	-- 關閉游標	close my_cursor;end $$delimiter ; call proc23("銷售部");

    兩個的運行結(jié)果是一樣的

    三.存儲函數(shù)

    格式

    在MySQL中,創(chuàng)建存儲函數(shù)使用create function關鍵字,其基本形式如下:

    參數(shù)說明

    (1) func_name :存儲函數(shù)的名稱。
    (2) param_name type:可選項,指定存儲函數(shù)的參數(shù)。type參數(shù)用于指定存儲函數(shù)的參數(shù)類型,該類型可以是MySQL數(shù)據(jù)庫中所有支持的類型。
    (3)returns type:指定返回值的類型。
    (4)characteristic:可選項,指定存儲函數(shù)的特性。
    (5)routine_body: SQL代碼內(nèi)容。

    演示

    drop function if exists myfunc1_emp;delimiter $$create function myfunc1_emp() returns intbegin	declare cnt int default 0;	select count(*) into cnt from emp;	return cnt;end $$delimiter ;

    運行結(jié)果可以會報錯,像這樣

    意思是說“此函數(shù)在其聲明中沒有確定性、無 SQL 或讀取 SQL 數(shù)據(jù),并且啟用了二進制日志記錄(您*可能*希望使用不太安全的 log_bin_trust_function_creators 變量)”

    所以我們設置允許創(chuàng)建函數(shù)權(quán)限信任即可

    -- 允許創(chuàng)建函數(shù)權(quán)限信任
    set global log_bin_trust_function_creators=true ;

    -- 允許創(chuàng)建函數(shù)權(quán)限信任set global log_bin_trust_function_creators=true ; drop function if exists myfunc1_emp;delimiter $$create function myfunc1_emp() returns intbegin	declare cnt int default 0;	select count(*) into cnt from emp;	return cnt;end $$delimiter ; -- 調(diào)用存儲函數(shù)select myfunc1_emp();

    這樣就可以了

    四.存儲過程總結(jié)

    到此這篇關于SQL中的游標、異常處理、存儲函數(shù)及總結(jié)的文章就介紹到這了,更多相關SQL中的游標、異常處理、存儲函數(shù)內(nèi)容請搜索以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持!

    標簽: MsSQL
    日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
    午夜日本精品| 少妇久久久久| 一区二区国产在线观看| 99成人在线视频| 91精品久久久久久久久久不卡| 综合日韩av| 成人免费网站www网站高清| 久久蜜桃精品| 国产午夜精品一区二区三区欧美 | 日韩精品一二三四| 首页国产欧美久久| 久久亚洲不卡| 亚洲综合小说| **爰片久久毛片| 国产欧美日韩视频在线| 欧美精品二区| 亚洲黄色网址| 亚洲一区日韩| 欧美三区不卡| 日韩av自拍| 午夜国产精品视频免费体验区| 免费在线观看不卡| 国产美女亚洲精品7777| 国产在线不卡一区二区三区| 欧美一级鲁丝片| 午夜在线精品| 日韩精品a在线观看91| 久久精品国产精品亚洲毛片| 成人日韩在线观看| 人人精品亚洲| 首页国产欧美久久| 国产精品久久久免费| 欧美成人a交片免费看| 天使萌一区二区三区免费观看| 日本精品另类| 日韩电影免费网站| 国产模特精品视频久久久久| 欧美伊人影院| 精品欧美一区二区三区在线观看| 亚洲欧美久久久| 久久99久久久精品欧美| 欧美综合另类| 国产一区 二区| 久久天堂成人| 亚洲欧美久久精品| 老牛国内精品亚洲成av人片| 欧美成人久久| 国产欧美88| 99精品在线| 91嫩草精品| 久久伦理在线| 国产精品一区二区三区av| 欧美一区二区三区激情视频| 日韩精品久久久久久久软件91| 神马久久午夜| 日韩精品免费观看视频| 欧洲在线一区| 国产欧美亚洲精品a| 蜜桃tv一区二区三区| 日韩高清在线观看一区二区| 国产精品伦理久久久久久| 亚洲日韩视频| 久久蜜桃精品| 欧美国产不卡| 亚洲资源网站| 久久天堂成人| 麻豆极品一区二区三区| 亚洲欧美网站| 伊人网在线播放| 日韩av不卡一区二区| 久久精品1区| 国产精品毛片久久久| 久久亚洲风情| 日本激情一区| 91成人小视频| 久久电影一区| 婷婷成人综合| 国产91欧美| 欧美日本精品| 丝袜a∨在线一区二区三区不卡| 国产美女高潮在线| 国产精品久久久亚洲一区| 免费在线观看一区二区三区| 欧洲在线一区| 精品久久亚洲| 国产麻豆一区| 亚洲毛片网站| 99国产精品久久久久久久成人热| 国产精品久久久久久久免费观看 | 日韩中文字幕高清在线观看| 日韩av中文字幕一区二区三区| 午夜久久tv| 国产成人精品一区二区三区视频| 88久久精品| 综合亚洲视频| 男女精品网站| 欧美日韩国产高清电影| 四虎国产精品免费观看| 国产欧美一区| 日本免费在线视频不卡一不卡二| 美女91精品| 精品中文一区| 激情欧美日韩一区| 亚洲成人二区| 久久视频精品| 蜜桃视频在线网站| 国产不卡精品在线| 久久久久黄色| 国产日韩一区二区三区在线播放| 亚洲精品自拍| 最新国产精品久久久| 在线国产日韩| 亚洲有吗中文字幕| 亚洲精品日韩久久| 亚洲色诱最新| 噜噜噜久久亚洲精品国产品小说| 日本久久成人网| 国产成人在线中文字幕| 精品国产一区二区三区性色av| 国产欧美日韩精品高清二区综合区| 亚州精品视频| 日韩手机在线| 国产精品一区二区精品| 麻豆精品一区二区综合av| 国产精品麻豆成人av电影艾秋| 国产日韩一区二区三区在线| 国产精品v日韩精品v欧美精品网站 | 青青草视频一区| 日韩高清国产一区在线| 日韩av影院| 免费在线播放第一区高清av| 国产精品国产三级在线观看| 精品淫伦v久久水蜜桃| 成午夜精品一区二区三区软件| www.九色在线| 欧美粗暴jizz性欧美20| 鲁大师影院一区二区三区| 亚洲va久久久噜噜噜久久| 青青国产精品| 国产成人精品亚洲线观看| 成人污污视频| 99视频精品视频高清免费| 蘑菇福利视频一区播放| 亚洲香蕉久久| 国产欧美一区二区三区国产幕精品| 国产精品xxx在线观看| 黄色在线网站噜噜噜| 蜜臀久久99精品久久一区二区 | 伊人影院久久| 无码日韩精品一区二区免费| 国产精品亚洲一区二区在线观看| 福利一区二区三区视频在线观看| 日韩网站中文字幕| 午夜国产精品视频| 日韩精品一二三区| 国产精品视频首页| 麻豆mv在线观看| 亚洲成人日韩| 日韩免费精品| 成人亚洲一区二区| 亚洲激情偷拍| 久久黄色影视| 欧美不卡高清一区二区三区| 免费看欧美美女黄的网站| 日韩av二区在线播放| 在线人成日本视频| 日韩中文字幕av电影| 麻豆久久久久久| 午夜久久影院| 国产亚洲精品精品国产亚洲综合| 欧美sm一区| 亚洲精品国产日韩| 成人av三级| 日韩有码av| 欧美激情视频一区二区三区免费| 久久久久免费av| 欧美偷窥清纯综合图区| 日韩大片免费观看| 喷白浆一区二区| 黄色在线观看www| 亚洲精品欧洲| 日韩国产网站| 久久国内精品视频| 久久久亚洲一区| 日韩一二三区在线观看| 三级精品视频| 国产精品一区二区av日韩在线| 一区二区三区四区在线看| 国产欧美91| 天堂成人免费av电影一区| 久久精品女人| 最新国产精品视频| av高清一区| 国产欧美另类| 99热免费精品| 欧美xxxx中国| 青青草国产成人99久久| 婷婷综合五月| www.九色在线| 清纯唯美亚洲综合一区|