游標

游標(cursor)

基本概念

  • 游標是一個存儲在MySQL服務器上的數據庫查詢,它不是一條select語句,而是被該語句檢索出來的結果集。在存儲了游標之后,可以對結果集進行逐行讀取的操作。
  • 使用游標注意:
  • 在使用游標之前,必須要聲明(定義)它。這個過程實際上沒有檢索數據,知識定義要使用的select語句。
  • 聲明之后,必須打開游標使用。這個過程用前面定義的select語句將數據檢索出來。
  • 對于填有數據的游標,根據需要取出(檢索)各行。
  • 在結束游標使用時必須關閉游標
  • MySQL中游標只能用于存儲過程(和函數)。

游標使用過程

  • 創建游標
    declare cursor_name cursor for select...
  • 打開和關閉游標
    open/close cursor_name;
  • 使用游標數據
    利用fetch語句分別訪問它的每一行,fetch語句指定檢索什么數據,檢索出來的數據存儲在什么地方,它還向前移動游標中的內部指針,使下一條fetch語句檢索下一行。
    fetch cursor_name into tmp;

游標使用演示

create procedure processorders()
begin 
declare done boolean default 0;
declare o int;
declare t decimal(8,2);

declare ordernumbers cursor 
        for 
        select order_num from orders;

declare continue handler for sqlstate '02000' set done=1;//'02000'指未找到

create table if not exists ordertotals(order_num int ,total decimal(8,2));
//打開游標 
open ordernumbers;

repeat
    fetch ordernumbers into o;
    call ordertotal(o,1,t);
    insert into ordertotals(order_num,total) values(o,t);
until done end repeat;
close ordernumbers;

end
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容