1. 程式人生 > >MYSQL必知必會讀書筆記 第二十四章 使用遊標

MYSQL必知必會讀書筆記 第二十四章 使用遊標

MySQL檢索操作返回一組稱為結果集的行。這組返回的行都是與SQL語句相匹配的行。使用簡單的SELECT語句無法得到第一行、下一行和前十行。有時候需要在檢索出來的結果中前進或後退一行或多行。這就是使用遊標的原因。遊標(cursor)是一個儲存在MySQL伺服器上的資料庫查詢它不是一條SELECT語句,而是被該語句檢索出來的結果集。在儲存了cursor之後,應用程式可以根據需要滾動或瀏覽其中的資料。

 遊標的主要作用是用於互動式應用,其中使用者需要滾動螢幕上的資料,並對資料進行瀏覽或做出更改。

需要注意的是:在MYSQL中游標只能使用與儲存過程中。

使用遊標的幾個明確的步驟:

1.在能夠使用遊標前,必須宣告它。這個過程實際上是沒有檢索資料的,它只是定義要使用的SELECT 語句。

2.一旦聲明後,必須開啟遊標以供使用。這個過程用前面定義的SELECT語句把實際檢索出來。

3.對填有資料的遊標,根據需要取出各行。

4.在結束遊標使用時,必須關閉遊標。

建立遊標

CREATE PROCEDURE processorders()

BEGIN

    DECLARE  ordernumbers  CURSOR  FOR  SELECT  order_num FROM ORDERS;

END;

開啟遊標:open ordernumbers; 關閉遊標:close  ordernumbers;如果你不明確關閉遊標,MySQL將會在到達END語句時自動關閉它。

使用遊標資料:

在一個遊標被開啟後,可以使用FETCH語句分別訪問它的每一行。FETCH指定檢索什麼資料(所需的列),檢索出來的資料儲存在什麼地方。它還向前移動遊標中的內部指標,使下一條FETCH語句檢索下一行(不重複讀取同一行)。

CREATE PROCEDURE processorders()

BEGIN

--Declare  local  variables

DECLARE o   INT;

--Declare the cursor

DECLARE ordernumbers  CURSOR FOR SELECT order_num FORM orders;

--Open  the cursor

OPEN  orderitems;

--Get order number

FETCH ordernumbers INTO  o;

CLOSE  ordernumbers;

END  ;

其中FETCH用來檢索當前行的order_num列(將自動從第一行開始)到一個名為o的區域性宣告的變數 中。對檢索出的資料不做任何處理。

下面是迴圈檢索資料從第一行到最後一行:

CREATE PROCEDURE processoders()

BEGIN

--Declare local variables

DECLARE done BOOLEAN DEFAULT 0;

DECLARE o INT;

--Decalre the cursor

DECLARE ordernumbers  CURSOR  FOR SELECT order_num FROM orders;

--Declare continue  handler

DECLARE CONTINUE HANDLER  FOR SQLSTATE  '0200'  SET  done=1;

//它是指當SQLSTATE' 02000' 出現的時候  設定done的值為1.

OPEN ordernubers;

--LOOP through all rows

REPEAT

 --Get order number

FETCH ordernumbers   INTO o;

UNTIL  done  END  REPEAT;

CLOSE  ordernumbers;

END;

需要注意的是:DECLARE  語句定義的區域性變數必須在定義任意遊標或控制代碼之前定義,而控制代碼必須在遊標之後定義。

相關推薦

MYSQL讀書筆記 第二 使用遊標

MySQL檢索操作返回一組稱為結果集的行。這組返回的行都是與SQL語句相匹配的行。使用簡單的SELECT語句無法得到第一行、下一行和前十行。有時候需要在檢索出來的結果中前進或後退一行或多行。這就是使用遊標的原因。遊標(cursor)是一個儲存在MySQL伺服器上的資料庫查詢

算法導論讀書筆記-第-數據結構的擴張

步驟 檢驗 int 由於 旋轉 著色 推出 log 14.3 算法導論第14章 數據結構的擴張 一些工程應用需要的只是標準數據結構, 但也有許多其他的應用需要對現有數據結構進行少許的創新和改造, 但是只在很少情況下需要創造出全新類型的數據結構, 更經常的是通過存儲額外信息的

算法導論筆記 第二 矩陣運算

style color 矩陣 導論 span -c pan ria round 28.1 求解線性方程組 定義: 奇異矩陣:秩不是滿秩的矩陣 算法導論筆記 第二十八章 矩陣運算

讀書筆記)——作業的知識點與註意事項

png dba 是否 命名 技術分享 發送郵件 fig 命令 name 1、 SQL Server 代理中包含很多的類別,有作業、警報、操作員、代理等,作業屬於其中的一個類別 1、 用自動化數據備份來介紹作業的具體運用規則 ①用命令符啟用sqlserveragen

學習筆記第二節課

作業 學習 筆記 shell特殊符_cut命令 *是通配符。 ?是任意一個字符。 #是註釋字符,寫命令的時候加一個#不生效。 \是脫義字符。(就是取消掉原來的作用,讓它不生效) 昨天用過單引號 其實還可以用\ 。 管道符。 管道符相關的幾個命令 如上。 管道符後面可以用很多命令 比如

《Java編程思想》筆記 第二 並發

插入 tde tran 並發模式 html https 64位 target 不可用 1.定義任務 實現Runnable 接口的類就是任務類(任務類不一定是實現Runnable接口的類)。 實現Runnable 接口,重寫run()方法,run方法的返回值只能是 vo

C++筆記 第二課 經典問題解析二---狄泰學院

如果在閱讀過程中發現有錯誤,望評論指正,希望大家一起學習,一起進步。 學習C++編譯環境:Linux 第二十四課 經典問題解析二 1.關於析構的疑問 當程式中存在多個物件的時候,如何確定這些物件的析構順序? 單個物件建立時解構函式的呼叫順序 1.呼叫父類的析構過程(後續課程中

強化學習(RLAI)讀書筆記資格跡(Eligibility Traces)

資格跡是強化學習演算法中的一個基本機制。比如很流行的其中的指的就是資格跡的使用。基本上所有的TD演算法都能夠和資格跡進行組合從而得到一個更通用的演算法。資格跡把TD和MC方法統一了起來。當TD演算法和資格跡進行組合使用時,得到了一組從一步TD延伸到MC演算法的演算法家族。一般中間部分的演算法效果比兩

強化學習(RLAI)讀書筆記 Off-policy Methods with Approximation

本書第五章就已經講解過分別使用on-policy和off-policy方法來解決GPI框架裡固有的explore和exploit的矛盾。前兩章已經講了on-policy情形下對於函式近似的拓展,本章繼續講解off-policy下對函式近似的拓展,但是這個拓展比on-policy時更難更不同。在第六第

強化學習(RLAI)讀書筆記Applications and Case Studies(alphago)

強化學習(RLAI)讀書筆記第十六章Applications and Case Studies(alphago) 16.6 Mastering the Game of Go 16.6.1 AlphaGo 16.6.2 AlphaG

強化學習(RLAI)讀書筆記Applications and Case Studies(不含alphago)

強化學習(RLAI)讀書筆記第十六章Applications and Case Studies(不含alphago) 16.1 TD-Gammon 16.2 Samuel's Checkers Player 16.3 Watson‘s Dail

Redis開發與運維讀書筆記-第-快取設計

快取能夠有效地加速應用的讀寫速度,同時也可以降低後端負載,對日常應用的開發至關重要。但是將快取加入應用架構後也會帶來一些問題. 1 快取的收益和成本 收益如下:·加速讀寫:因為快取通常都是全記憶體的(例如Redis、Memcache),而儲存層通常讀寫效能不夠強悍(例如M

[讀書筆記][第] C# in depth

ch 11 查詢表示式和 LINQ to Objects intro Language Integrated Query (LINQ), C# 3的新特性。 標準查詢操作符 -> 構成查詢表示式 -> 轉譯為普通c#3 程式碼 -> 編譯(推斷、過載、

學習筆記第二節:分數規劃

正題       好像大部分都是01分數規劃?       它是解決這樣的問題的,求       怎麼做?       好像很麻煩。       我們來二分一個數k,       然後讓這堆

HTTP圖解讀書筆記(第 返回結果的HTTP狀態碼)

一、狀態碼 5種狀態碼: 具有代表性的14個狀態碼: 2XX 請求被正常處理 200 ok        表示客戶端發來的請求在服務端被正常處理了 204 no Content &n

java程式設計思想讀書筆記 泛型 (匿名內部類和擦除)

1.匿名內部類 泛型還可以應用於內部類以及匿名內部類。下面的例子使用匿名內部類實現了Generator介面: public class Customer { private static long counter = 1; private f

《Linux核心設計與實現》讀書筆記)- 塊I/O層

最近太忙,居然過了2個月才更新第十四章。。。。 主要內容: 塊裝置簡介 核心訪問塊裝置的方法 核心I/O排程程式 1. 塊裝置簡介 I/O裝置主要有2類: 字元裝置:只能順序讀寫裝置中的內容,比如 串列埠裝置,鍵盤 塊裝置:能夠隨機讀寫裝置中的內容,比如 硬碟,U盤 字元

MIT線性代數筆記-第二

Markov Matrices ⎡⎣⎢.1.2.7.01.99.0.3.3.4⎤⎦⎥[.1.01.3.2.99.3.7.0.4] 馬爾科夫矩陣有兩條性質: 1.所有項大於0(由於項與概率相關) 2.所有列相加為1 要點: 1.λ=1λ=1為一個特徵值

《C++ Primer》讀書筆記-2-關聯容器操作

筆記會持續更新,有錯誤的地方歡迎指正,謝謝! 關聯容器操作 這部分的內容較多,但是順序容器那部分掌握了,這裡會很快,一通百通嘛。 map的節點是一對資料,set的節點是一個數據。 關聯容器迭代器:map的value_type是pair<cons

不測的祕密:精準測試之路----讀書筆記(第

四、精準化測試第二式:技術治理 1、技術耦合(由強到弱) 內容耦合 *  一個模組直接訪問另一個模組的內部資料 *  一個模組不通過正常入口轉到另一模組內部 *  兩個模組有一部分程式程式碼重疊(只可能出現在組合語言中) * &nbs