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