程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> Mysql那些事兒之(十四)光標的使用

Mysql那些事兒之(十四)光標的使用

編輯:MySQL綜合教程


Mysql那些事兒之(十四)光標的使用   相關鏈接: Mysql那些事兒之(一)mysql的安裝 http://www.BkJia.com/database/201210/162314.html; Mysql那些事兒之(二)有關數據庫的操作 http://www.BkJia.com/database/201210/162315.html; Mysql那些事兒之(三)有關數據表的操作 http://www.BkJia.com/database/201210/162316.html; Mysql那些事兒之(四)數據表數據查詢操作 http://www.BkJia.com/database/201210/162317.html; Mysql那些事兒之(五)操作時間 http://www.BkJia.com/database/201210/162318.html; Mysql那些事兒之(六)字符串模式匹配 http://www.BkJia.com/database/201210/163969.html; Mysql那些事兒之(七)深入select查詢 http://www.BkJia.com/database/201210/163970.html; Mysql那些事兒之(八)索引 http://www.BkJia.com/database/201210/163971.html; Mysql那些事兒之(九)常用的函數 http://www.BkJia.com/database/201210/164229.html; Mysql那些事兒之(十)觸發器一 http://www.BkJia.com/database/201210/164516.html; Mysql那些事兒之(十一)觸發器二 http://www.BkJia.com/database/201210/164766.html; Mysql那些事兒之(十二)存儲過程 http://www.BkJia.com/database/201210/164795.html; Mysql那些事兒之(十三)變量、條件的使用 http://www.BkJia.com/database/201211/165662.html   在存儲過程中可以使用光標對結果集進行循環處理,光標的使用包括光標的聲明、open、fetch、close。  www.2cto.com   語法如下: Sql代碼   --聲明光標   DECLARE cur_name CURSOR FOR select_statement   --open光標   OPEN cursor_name   --FETCH 光標   FETCH cursor_name INTO var_name [,var_name....]   --close光標   CLOSE cursor_name   舉例說明: Sql代碼   delimiter $$  --將;結束符改變為$$   --創建存儲過程   CREATE PROCEDURE payment_amount()   BEGIN     ---聲明變量     DECLARE i_staff_id int;     DECLARE d_amount decimal(5,2);     ---聲明一個光標,獲取表payment裡的staff_id,amount列的值。     DECLARE cur_payment cursor for select staff_id,amount from payment;     ---條件處理,判斷循環結束的條件是 捕獲NOT FOUND條件。    ---當fecth 找不到下一條記錄時,就會關閉光標,退出過程。     DECLARE EXIT HANDLER FOR NOT FOUND CLOSE cur_payment;        set @x1 = 0;     set @x2 = 0;     ----打開光標     OPEN cur_payment;          REPEAT       FETCH cur_payment INTO i_staff_id,d_amount;         if i_staff_id = 2 then           set @x1 = @x1 + d_amount;         else           set @x2 = @x2 + d_amount;         end if;     UNTIL 0 END REPEAT;        CLOSE cur_payment;   END;   $$      delimiter ;    DECLARE定義是有順序的:變量和條件必須放在前面、然後是光標的聲明、最後才可以是 處理程序的聲明。  

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved