最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

mysql基本函數(shù)、循環(huán)、跳出循環(huán)、游標(biāo)使用及說明

 更新時(shí)間:2026年06月14日 10:16:23   作者:destiny@  
這篇文章主要介紹了mysql基本函數(shù)、循環(huán)、跳出循環(huán)、游標(biāo)使用及說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

SQL99語法新特性

  1. NATURAL JOIN (自然連接) : 她會(huì)幫你自動(dòng)查詢兩張表中所有相同的字段,然后進(jìn)行等值連接
select a.dept_id,b.dept_id from A a NATURAL JOIN B b
  1. USING : 兩張表中字段一樣(dept_id) 才能使用
select a.dept_id,b.dept_id form A a join A b USING(dept_id)
  1. match ()Against() 全文檢索
  • 需查詢的字段創(chuàng)建為fulltext索引
  • match默認(rèn)不支持中文檢索,所以添加索引時(shí)需要添加解析器: WITH PARSER ngram
  • 傳統(tǒng)like會(huì)是索引失效
  • show VARIABLES like 'ngram_token_size’查看分詞方式,可以修改
SELECT
	id_,
	pat_name,
	id_card_no,
	phone_ 
FROM
	`inspect_meal_appointment_record` 
WHERE
	MATCH ( pat_name ) Against (
	'張三' 
	)
	

create fulltext index ind on inspect_meal_appointment_record (pat_name)  WITH PARSER ngram;


基本函數(shù)

循環(huán)

使用儲(chǔ)存過程(procedure)進(jìn)行演示

repeat 循環(huán)

CREATE DEFINER=`root`@`localhost` PROCEDURE `repeatTest`()
BEGIN
	DECLARE nums INT DEFAULT 1;
	
	REPEAT
	  set nums = nums+1;
		UNTIL nums >= 10
		
	END REPEAT;

SELECT nums;


END

while 循環(huán)

CREATE DEFINER=`root`@`localhost` PROCEDURE `whileTest`()
BEGIN
	DECLARE nums INT DEFAULT 1;
	
	WHILE nums <= 10 DO
	set nums = nums+1;
END WHILE;


SELECT nums;


END

loop循環(huán)

CREATE DEFINER=`root`@`localhost` PROCEDURE `loopTest`()
BEGIN
	DECLARE nums INT DEFAULT 1;
	
	test_label: LOOP
	set nums = nums+1;

	IF nums >= 110 THEN
		LEAVE test_label; 
	END IF; 
END LOOP test_label;



SELECT nums;


END

leave 跳出

可以用在循環(huán)或者單獨(dú)的語句中

CREATE DEFINER=`root`@`localhost` PROCEDURE `leaveTest`()
BEGIN
	DECLARE nums INT DEFAULT 1;
	
	while_label:WHILE TRUE DO
		IF nums > 10 THEN LEAVE while_label;
		END IF;
		set nums = nums+1;
END WHILE;


SELECT nums;


END

iterate 執(zhí)行下一次循環(huán)

只能用在循環(huán)中,相當(dāng)于java的 continue

CREATE DEFINER=`root`@`localhost` PROCEDURE `ITERATETest`()
BEGIN
	DECLARE nums INT DEFAULT 1;
	
	test_label: LOOP
	set nums = nums+1;
	IF nums < 10
			THEN ITERATE test_label;
	ELSEIF nums > 15 
	THEN LEAVE test_label; 
	END IF; 
END LOOP test_label;



SELECT nums;


END

游標(biāo)

CREATE DEFINER=`inspect-v2-develop`@`%` PROCEDURE `updateTypeLabel`()
    COMMENT '數(shù)據(jù)遷移,儲(chǔ)存過程'
BEGIN
	DECLARE s INT DEFAULT  0;
	DECLARE mealId VARCHAR(64);
	DECLARE num INT DEFAULT 0;
	
	DECLARE list CURSOR FOR  SELECT deploy_meal_id,COUNT(deploy_meal_id) from inspect_meal_deploy WHERE   is_deleted = '0' GROUP BY deploy_meal_id;
	
	DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET s = 1;
	
	OPEN list;
		
		FETCH list into mealId,num;
		while s<> 1 do
			IF num >= 1 THEN 
			UPDATE  inspect_meal_type_label SET meal_deploy_id = (SELECT id_ FROM inspect_meal_deploy WHERE is_deleted = '0' AND deploy_meal_id = mealId LIMIT 1) WHERE meal_id =  mealId AND is_deleted = '0';
			END IF;
			
			FETCH list into mealId,num;
		END WHILE;
		
	CLOSE list;

END

DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET s = 1;是一個(gè)聲明句柄,它類似于存儲(chǔ)過程中的一個(gè)異常。

這里邊有一個(gè)關(guān)鍵字continue,這個(gè)關(guān)鍵字是和exit關(guān)鍵字相對(duì)應(yīng)的。continue語句會(huì)執(zhí)行完指定操作后繼續(xù)循環(huán),而exit語句會(huì)退出將從最近的begin…end語句塊中退出。 在這里的指定的操作就是set s = 1

既然聲明了句柄,就要告訴程序句柄在什么時(shí)候調(diào)用,在這個(gè)例子中,當(dāng)sqlstate '02000'語句被調(diào)用時(shí)會(huì)執(zhí)行句柄。那么這個(gè)sqlstate '02000'是什么意思呢?該句柄將在無法再找到記錄行后調(diào)用。也就是說當(dāng)遍歷完所有的結(jié)果集后就會(huì)調(diào)用。

因此,DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET s = 1;的意思就是當(dāng)遍歷完結(jié)果集之后把s的值設(shè)為1。

注意,句柄要定義在游標(biāo)之后,不然會(huì)報(bào)ERROR 1338 (42000): Cursor declaration after handler declaration錯(cuò)誤。

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 有關(guān)mysql優(yōu)化的一些東東整理

    有關(guān)mysql優(yōu)化的一些東東整理

    有關(guān)mysql優(yōu)化的一些東東,自己整理的,網(wǎng)上搜集的,供朋友們學(xué)習(xí)參考吧
    2013-02-02
  • MySQL?查詢?并集、交集、差集方式

    MySQL?查詢?并集、交集、差集方式

    這篇文章主要介紹了MySQL?查詢?并集、交集、差集方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • MYSQL開啟遠(yuǎn)程訪問權(quán)限的方法

    MYSQL開啟遠(yuǎn)程訪問權(quán)限的方法

    在本篇文章里小編給大家整理的是關(guān)于MYSQL開啟遠(yuǎn)程訪問權(quán)限的方法,對(duì)此有興趣的朋友們可以跟著學(xué)習(xí)下。
    2020-02-02
  • MYSQL中EXISTS的用法小結(jié)

    MYSQL中EXISTS的用法小結(jié)

    在MySQL數(shù)據(jù)庫中,EXISTS是一種強(qiáng)大的工具,用于處理復(fù)雜的查詢需求,本文主要介紹了MYSQL中EXISTS的用法小結(jié),具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-05-05
  • MySQL定時(shí)任務(wù)(EVENT事件)如何配置詳解

    MySQL定時(shí)任務(wù)(EVENT事件)如何配置詳解

    這篇文章主要介紹了MySQL定時(shí)任務(wù)(EVENT事件)如何配置詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • 教你如何讓spark?sql寫mysql的時(shí)候支持update操作

    教你如何讓spark?sql寫mysql的時(shí)候支持update操作

    spark提供了一個(gè)枚舉類,用來支撐對(duì)接數(shù)據(jù)源的操作模式,本文重點(diǎn)給大家介紹如何讓spark?sql寫mysql的時(shí)候支持update操作,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友參考下吧
    2022-02-02
  • CentOS 7 下使用yum安裝MySQL5.7.20 最簡單方法

    CentOS 7 下使用yum安裝MySQL5.7.20 最簡單方法

    這篇文章主要介紹了CentOS 7 下使用yum安裝MySQL5.7.20 最簡單 方法,需要的朋友可以參考下
    2018-11-11
  • MySQL主從同步延遲原因與解決方案

    MySQL主從同步延遲原因與解決方案

    本文主要介紹了MySQL主從同步延遲原因與解決方案,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-11-11
  • 簡析mysql字符集導(dǎo)致恢復(fù)數(shù)據(jù)庫報(bào)錯(cuò)問題

    簡析mysql字符集導(dǎo)致恢復(fù)數(shù)據(jù)庫報(bào)錯(cuò)問題

    這篇文章主要介紹了簡析mysql字符集導(dǎo)致恢復(fù)數(shù)據(jù)庫報(bào)錯(cuò)問題,具有一定參考價(jià)值,需要的朋友可以了解。
    2017-10-10
  • MySQL配置文件my.ini的使用解讀

    MySQL配置文件my.ini的使用解讀

    這篇文章主要介紹了MySQL配置文件my.ini的使用解讀,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-12-12

最新評(píng)論

湄潭县| 眉山市| 巫山县| 鹤壁市| 泉州市| 新干县| 宁陕县| 城步| 长岭县| 永定县| 昂仁县| 福鼎市| 达孜县| 玉门市| 安达市| 大化| 永修县| 双辽市| 黑水县| 章丘市| 龙门县| 毕节市| 绥宁县| 前郭尔| 岳池县| 建湖县| 罗山县| 白沙| 彭山县| 库伦旗| 延寿县| 大厂| 鄂托克前旗| 睢宁县| 景谷| 谷城县| 永川市| 从化市| 正镶白旗| 凤城市| 大厂|