欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

基于MySQL游標(biāo)的具體使用詳解

 更新時間:2013年06月11日 16:27:12   作者:  
本篇文章是對MySQL游標(biāo)的具體使用進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下

測試表 level ;

復(fù)制代碼 代碼如下:

create table test.level (name varchar(20));

再 insert 些數(shù)據(jù) ;

代碼

初始化

復(fù)制代碼 代碼如下:

drop procedure if exists useCursor //

建立 存儲過程 create
復(fù)制代碼 代碼如下:

CREATE PROCEDURE useCursor()

BEGIN


局部變量的定義 declare
復(fù)制代碼 代碼如下:

declare tmpName varchar(20) default '' ; 
declare allName varchar(255) default '' ; 
declare cur1 CURSOR FOR SELECT name FROM test.level ; 

MySQL 游標(biāo) 異常后 捕捉

并設(shè)置 循環(huán)使用 變量 tmpname 為 null 跳出循環(huán)。

復(fù)制代碼 代碼如下:

declare CONTINUE HANDLER FOR SQLSTATE '02000' SET tmpname = null;

開游標(biāo)
復(fù)制代碼 代碼如下:

OPEN cur1;

游標(biāo)向下走一步
復(fù)制代碼 代碼如下:

FETCH cur1 INTO tmpName;

循環(huán)體 這很明顯 把MySQL 游標(biāo)查詢出的 name 都加起并用 ; 號隔開
復(fù)制代碼 代碼如下:

WHILE ( tmpname is not null) DO
set tmpName = CONCAT(tmpName ,";") ;
set allName = CONCAT(allName ,tmpName) ;

游標(biāo)向下走一步
復(fù)制代碼 代碼如下:

FETCH cur1 INTO tmpName;

結(jié)束循環(huán)體:
復(fù)制代碼 代碼如下:

END WHILE;

關(guān)閉游標(biāo)
復(fù)制代碼 代碼如下:

CLOSE cur1;

選擇數(shù)據(jù)
復(fù)制代碼 代碼如下:

select allName ;

結(jié)束存儲過程
復(fù)制代碼 代碼如下:

END;//

調(diào)用存儲過程:
復(fù)制代碼 代碼如下:

call useCursor()//

運行結(jié)果:
復(fù)制代碼 代碼如下:

mysql> call useCursor()//

+--------------------------------------+

| allName                              |

+--------------------------------------+

| f1;c3;c6;c5;c2;c4;c1;f1;f3;f4;f2;f5; |

+--------------------------------------+

1 row in set (0.00 sec)


loop循環(huán)游標(biāo):
復(fù)制代碼 代碼如下:

DELIMITER $$ 

DROP PROCEDURE IF EXITS cursor_example$$ 
CREATE PROCEDURE cursor_example() 
     READS SQL DATA 
BEGIN 
     DECLARE l_employee_id INT; 
     DECLARE l_salary NUMERIC(8,2); 
     DECLARE l_department_id INT; 
     DECLARE done INT DEFAULT 0; 
     DECLARE cur1 CURSOR FOR SELECT employee_id, salary, department_id FROM employees; 
     DECLARE CONTINUE HANDLER FOR NOT FOUND SET done=1; 

     OPEN cur1; 
     emp_loop: LOOP 
         FETCH cur1 INTO l_employee_id, l_salary, l_department_id; 
         IF done=1 THEN 
             LEAVE emp_loop; 
         END IF; 
     END LOOP emp_loop; 
     CLOSE cur1; 
END$$ 
DELIMITER ; 

repeat循環(huán)游標(biāo):
復(fù)制代碼 代碼如下:

/*創(chuàng)建過程*/
DELIMITER //
DROP PROCEDURE IF EXISTS test //
CREATE PROCEDURE test()
BEGIN
    DECLARE done INT DEFAULT 0;
    DECLARE a VARCHAR(200) DEFAULT '';
    DECLARE c VARCHAR(200) DEFAULT '';

    DECLARE mycursor CURSOR FOR SELECT  fusername FROM uchome_friend;
    DECLARE CONTINUE HANDLER FOR NOT FOUND SET done=1;

    OPEN mycursor;

    REPEAT
        FETCH mycursor INTO a;
        IF NOT done THEN
            SET c=CONCAT(c,a);/*字符串相加*/
        END IF;

    UNTIL done END REPEAT;

    CLOSE mycursor;

    SELECT c;
END //
DELIMITER ;

復(fù)制代碼 代碼如下:

/*創(chuàng)建過程*/
DELIMITER //
DROP PROCEDURE IF EXISTS test //
CREATE PROCEDURE test()
BEGIN
    DECLARE done INT DEFAULT 0;
    DECLARE a VARCHAR(200) DEFAULT '';
    DECLARE c VARCHAR(200) DEFAULT '';

    DECLARE mycursor CURSOR FOR SELECT  fusername FROM uchome_friend;
    DECLARE CONTINUE HANDLER FOR NOT FOUND SET done=1;

    OPEN mycursor;

    REPEAT
        FETCH mycursor INTO a;
        IF NOT done THEN
            SET c=CONCAT(c,a);/*字符串相加*/
        END IF;

    UNTIL done END REPEAT;

    CLOSE mycursor;

    SELECT c;
END //
DELIMITER ;

相關(guān)文章

  • SQL行轉(zhuǎn)列與列轉(zhuǎn)行詳情

    SQL行轉(zhuǎn)列與列轉(zhuǎn)行詳情

    這篇文章主要介紹了SQL行轉(zhuǎn)列與列轉(zhuǎn)行,違章以SQL數(shù)據(jù)展開詳細(xì)內(nèi)容,具有一定的參考價值,需要的小伙伴可以參考一下,希望對你有所幫助
    2022-03-03
  • CentOS 7中源碼安裝MySQL 5.7.6+詳細(xì)教程

    CentOS 7中源碼安裝MySQL 5.7.6+詳細(xì)教程

    最近在CentOS 7中源碼安裝MySQL 5.7.6+,發(fā)現(xiàn)MySQL5.7.6+以后的安裝方式真的與以前版本的MySQL安裝方式大大的不同呀。不自己安裝一把,你都不知道不同之處在哪,下面這篇文章是通過自己的安裝過程總結(jié)的一篇安裝教程,有需要的朋友們可以參考借鑒,下面來一起看看吧。
    2016-12-12
  • SQL?Server攜程核心系統(tǒng)無感遷移到MySQL實戰(zhàn)

    SQL?Server攜程核心系統(tǒng)無感遷移到MySQL實戰(zhàn)

    這篇文章主要介紹了SQL?Server攜程核心系統(tǒng)無感遷移到MySQL實戰(zhàn),文章通過基于數(shù)據(jù)庫部署架構(gòu)鏡像構(gòu)建了訂單緩存統(tǒng)一管理熱點數(shù)據(jù),解決各端差異,具體詳情需要的小伙伴可以參考下面文章詳細(xì)內(nèi)容
    2022-05-05
  • C# Mysql 查詢 Rownum的解決方法

    C# Mysql 查詢 Rownum的解決方法

    C# Mysql 查詢 Rownum的解決方法,需要的朋友可以參考一下
    2013-03-03
  • 出現(xiàn)錯誤mysql Table ''performance_schema...解決辦法

    出現(xiàn)錯誤mysql Table ''performance_schema...解決辦法

    這篇文章主要介紹了解決出現(xiàn)錯誤mysql Table 'performance_schema.session_variables' doesn't exist的相關(guān)資料,需要的朋友可以參考下
    2017-04-04
  • Mysql索引分類及其使用實例詳解

    Mysql索引分類及其使用實例詳解

    數(shù)據(jù)庫的索引就像一本書的目錄,能夠加快數(shù)據(jù)庫的查詢速度,MYSQL索引有四種PRIMARY、INDEX、UNIQUE、FULLTEXT,?其中PRIMARY、INDEX、UNIQUE是一類,F(xiàn)ULLTEXT是一類,本文給大家介紹Mysql索引分類及其使用實例,感興趣的朋友一起看看吧
    2022-07-07
  • mysql?8.0.28?winx64.zip安裝配置方法圖文教程

    mysql?8.0.28?winx64.zip安裝配置方法圖文教程

    這篇文章主要為大家詳細(xì)介紹了mysql?8.0.28?winx64.zip安裝配置方法圖文教程,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • MySQL表聚合與聯(lián)合查詢的實現(xiàn)

    MySQL表聚合與聯(lián)合查詢的實現(xiàn)

    MySQL聚合與聯(lián)合查詢是數(shù)據(jù)庫查詢中常用的技術(shù),它們能夠從多個數(shù)據(jù)源中提取和組合數(shù)據(jù),以獲得有用的信息和結(jié)果,本文就來介紹下MySQL聚合與聯(lián)合查詢,感興趣的可以了解一下
    2023-10-10
  • MySQL如何實現(xiàn)兩張表取差集

    MySQL如何實現(xiàn)兩張表取差集

    這篇文章主要介紹了MySQL如何實現(xiàn)兩張表取差集問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • Mysql中的select ...for update

    Mysql中的select ...for update

    這篇文章主要介紹了Mysql中的select ...for update用法,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08

最新評論