国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

MySQL游標(biāo)(cursor)定義及使用

這篇具有很好參考價(jià)值的文章主要介紹了MySQL游標(biāo)(cursor)定義及使用。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

提到MySQL游標(biāo),多半在存儲(chǔ)過(guò)程中定義及使用。

以下說(shuō)明摘自MySQL官網(wǎng):

MySQL 支持存儲(chǔ)程序中的游標(biāo)。語(yǔ)法與嵌入式 SQL 中的一樣。游標(biāo)具有以下屬性:

  • 不敏感:服務(wù)器可能會(huì)也可能不會(huì)復(fù)制其結(jié)果表
  • 只讀:不可更新
  • 不可滾動(dòng):只能單向遍歷,不能跳行

游標(biāo)聲明必須出現(xiàn)在處理程序聲明之前以及變量和條件聲明之后。

游標(biāo)申明語(yǔ)法:

DECLARE cursor_name CURSOR FOR select_statement

cursor_name:定義的游標(biāo)名稱(chēng)

select_statement:SQL查詢(xún)語(yǔ)句

此語(yǔ)句聲明一個(gè)游標(biāo)并將其與?SELECT檢索要由游標(biāo)遍歷的行的語(yǔ)句相關(guān)聯(lián)。要稍后獲取行,請(qǐng)使用FETCH語(yǔ)句。語(yǔ)句檢索的列數(shù)?SELECT必須與語(yǔ)句中指定的輸出變量數(shù)相匹配?FETCH。

該SELECT語(yǔ)句不能有INTO子句。

游標(biāo)聲明必須出現(xiàn)在處理程序聲明之前以及變量和條件聲明之后。

存儲(chǔ)的程序可能包含多個(gè)游標(biāo)聲明,但在給定塊中聲明的每個(gè)游標(biāo)必須具有唯一的名稱(chēng)。

對(duì)于通過(guò)?SHOW語(yǔ)句可用的信息,在許多情況下可以通過(guò)將游標(biāo)與INFORMATION_SCHEMA表一起使用來(lái)獲得等效信息。

Cursor FETCH語(yǔ)法:

FETCH [[NEXT] FROM] cursor_name INTO var_name [, var_name] ...

此語(yǔ)句獲取與指定游標(biāo)(必須打開(kāi))關(guān)聯(lián)的語(yǔ)句的下一行?SELECT,并推進(jìn)游標(biāo)指針。如果存在一行,則提取的列存儲(chǔ)在命名變量中。語(yǔ)句檢索的列數(shù)?SELECT必須與語(yǔ)句中指定的輸出變量數(shù)相匹配?FETCH。

如果沒(méi)有更多行可用,則出現(xiàn) No Data 條件,SQLSTATE value?'02000'。要檢測(cè)此條件,您可以為其(或條件)設(shè)置一個(gè)處理程序?NOT FOUND。

請(qǐng)注意,另一個(gè)操作(例如 a?SELECT或 another?FETCH)也可能通過(guò)引發(fā)相同條件來(lái)導(dǎo)致處理程序執(zhí)行。如果有必要區(qū)分哪個(gè)操作引發(fā)了條件,請(qǐng)將該操作放在它自己的?BEGIN ... END塊中,以便它可以與它自己的處理程序相關(guān)聯(lián)。

游標(biāo)的開(kāi)啟及關(guān)閉,必須成對(duì)出現(xiàn),語(yǔ)法:

open cursor_name;

close cursor_name;

定義一個(gè)游標(biāo)的完整語(yǔ)法示例:

CREATE PROCEDURE curdemo(IN in_id varchar(32))
BEGIN
  DECLARE done INT DEFAULT FALSE;
  DECLARE a CHAR(16);
  DECLARE b, c INT;
  DECLARE cur1 CURSOR FOR SELECT id,data FROM test.t1 where id=in_id;
  DECLARE cur2 CURSOR FOR SELECT id,data FROM test.t2 where id=in_id;
  # 申明游標(biāo)遍歷結(jié)束的標(biāo)記
  DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;

  # 打開(kāi)游標(biāo)
  OPEN cur1;
  OPEN cur2;

  # 遍歷游標(biāo)
  read_loop: LOOP
    FETCH cur1 INTO a, b;
    FETCH cur2 INTO c;
    IF done THEN
      LEAVE read_loop;# 如果遍歷結(jié)束,退出循環(huán)
    END IF;
    IF b < c THEN
      INSERT INTO test.t3 VALUES (a,b);
    ELSE
      INSERT INTO test.t3 VALUES (a,c);
    END IF;
  END LOOP;

  # 關(guān)閉游標(biāo)
  CLOSE cur1;
  CLOSE cur2;
END;

寫(xiě)在最后的踩坑點(diǎn):

1.申明游標(biāo)時(shí),必須定義一個(gè)完整的SQL查詢(xún)語(yǔ)句。

MySQL官網(wǎng)游標(biāo)(cursor)說(shuō)明文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-426902.html

到了這里,關(guān)于MySQL游標(biāo)(cursor)定義及使用的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶(hù)投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • MySQL的變量、流程控制與游標(biāo)

    MySQL的變量、流程控制與游標(biāo)

    目錄 1.變量的分類(lèi) 1.系統(tǒng)變量的分類(lèi) 1.1.二者關(guān)系 2.查看系統(tǒng)變量 3.修改系統(tǒng)變量的值 4.用戶(hù)變量 4.1會(huì)話用戶(hù)變量 1.變量聲明與賦值 2.變量使用??? 4.2.局部變量 1.使用declare 聲明?? 2.局部變量聲明格式??? 3.局部變量賦值??? 4.變量使用??? 5.定義條件與處理程序 1.定義條

    2024年02月15日
    瀏覽(16)
  • Mysql存儲(chǔ)-變量、函數(shù)、游標(biāo)、判斷、循環(huán)

    1、介紹: 存儲(chǔ)過(guò)程是事先經(jīng)過(guò)編譯并存儲(chǔ)在數(shù)據(jù)庫(kù)中的一段SQL語(yǔ)句的集合,調(diào)用存儲(chǔ)過(guò)程可以,減少數(shù)據(jù)在數(shù)據(jù)庫(kù)和應(yīng)用服務(wù)器之間的傳輸,對(duì)于提高數(shù)據(jù)處理的效率是有好處的。 存儲(chǔ)過(guò)程思想上很簡(jiǎn)單,就是數(shù)據(jù)庫(kù)SQL語(yǔ)言層面的代碼封裝與重用 2、特點(diǎn) 封裝、復(fù)用 可以接

    2024年02月07日
    瀏覽(20)
  • 玩轉(zhuǎn)Mysql系列 - 第19篇:游標(biāo)詳解

    這是Mysql系列第19篇。 環(huán)境:mysql5.7.25,cmd命令中進(jìn)行演示。 代碼中被[]包含的表示可選,|符號(hào)分開(kāi)的表示可選其一。 需求背景 當(dāng)我們需要對(duì)一個(gè)select的查詢(xún)結(jié)果進(jìn)行遍歷處理的時(shí)候,如何實(shí)現(xiàn)呢? 此時(shí)我們需要使用游標(biāo),通過(guò)游標(biāo)的方式來(lái)遍歷select查詢(xún)的結(jié)果集,然后對(duì)

    2024年02月09日
    瀏覽(22)
  • mysql JDBC的三種查詢(xún)(普通、流式、游標(biāo))

    mysql JDBC的三種查詢(xún)(普通、流式、游標(biāo))

    使用JDBC向mysql發(fā)送查詢(xún)時(shí),有三種方式: 常規(guī)查詢(xún):JDBC驅(qū)動(dòng)會(huì)阻塞的一次性讀取全部查詢(xún)的數(shù)據(jù)到 JVM 內(nèi)存中,或者分頁(yè)讀取 流式查詢(xún):每次執(zhí)行rs.next時(shí)會(huì)判斷數(shù)據(jù)是否需要從mysql服務(wù)器獲取,如果需要觸發(fā)讀取一批數(shù)據(jù)(可能n行)加載到 JVM 內(nèi)存進(jìn)行業(yè)務(wù)處理 游標(biāo)查詢(xún):

    2024年02月08日
    瀏覽(24)
  • MySQL的多層SP中Cursor的m_max_cursor_index相關(guān)BUG分析

    MySQL的多層SP中Cursor的m_max_cursor_index相關(guān)BUG分析

    在一次開(kāi)發(fā)中在sp中使用多層cursor的時(shí)候想知道每層的 m_max_cursor_index 值分別是多少,以用來(lái)做后續(xù)開(kāi)發(fā)。于是做了以下的試驗(yàn),但是發(fā)現(xiàn)第一個(gè)level=2那層的 m_max_cursor_index 的值有點(diǎn)問(wèn)題。 注:本次使用的MySQL數(shù)據(jù)庫(kù)版本為最新的debug版本。 SQL語(yǔ)句示例: 首先查看上面的sp的

    2024年04月08日
    瀏覽(18)
  • 存儲(chǔ)過(guò)程、觸發(fā)器、游標(biāo)、視圖、自定義函數(shù) 字段類(lèi)型、字段可空、統(tǒng)計(jì)字段、邏輯刪除 權(quán)限系統(tǒng)數(shù)據(jù)庫(kù)&無(wú)限極類(lèi)別設(shè)計(jì)

    在數(shù)據(jù)庫(kù)設(shè)計(jì)中,存儲(chǔ)過(guò)程、觸發(fā)器、游標(biāo)、視圖、自定義函數(shù)、字段類(lèi)型、字段可空、統(tǒng)計(jì)字段、邏輯刪除以及權(quán)限系統(tǒng)和無(wú)限級(jí)類(lèi)別設(shè)計(jì)都是重要的概念。下面我將逐一解釋這些概念,并提供相關(guān)的設(shè)計(jì)建議。 存儲(chǔ)過(guò)程 (Stored Procedure) 定義 :存儲(chǔ)過(guò)程是一組為了完成特定

    2024年03月09日
    瀏覽(102)
  • 【最詳細(xì)教程Cursor】智能 AI 代碼生成工具 Cursor 安裝和使用介紹

    【最詳細(xì)教程Cursor】智能 AI 代碼生成工具 Cursor 安裝和使用介紹

    Cursor.so 是一個(gè)集成了 GPT-4 的國(guó)內(nèi)直接可以訪問(wèn)的,優(yōu)秀而強(qiáng)大的免費(fèi)代碼生成器,可以幫助你快速編寫(xiě)、編輯和討論代碼。 它支持多種編程語(yǔ)言,如 Python, Java, C#, JavaScript 等,并且可以根據(jù)你的輸入和需求自動(dòng)生成代碼片段。 Cursor.so 還可以幫助你重構(gòu)、理解和優(yōu)化代碼,

    2023年04月19日
    瀏覽(25)
  • 數(shù)據(jù)庫(kù)實(shí)驗(yàn) | 第5關(guān):使用游標(biāo)的存儲(chǔ)過(guò)程

    數(shù)據(jù)庫(kù)實(shí)驗(yàn) | 第5關(guān):使用游標(biāo)的存儲(chǔ)過(guò)程

    本關(guān)任務(wù): jdxx數(shù)據(jù)表有四個(gè)字段,分別是省份(sf)、城市(cs)、區(qū)縣(qxmc)、街道(name)。 例如,查詢(xún)天心區(qū)(qxmc)的所有字段的值結(jié)果如圖所示 建立存儲(chǔ)過(guò)程 tjdq(in sf varchar(10)) 輸入省份的名稱(chēng),將該省份所有城市的所有地區(qū)的 鄉(xiāng)x、鎮(zhèn)z和街道jd和其他的個(gè)數(shù)插入到數(shù)據(jù)表dqtj中。

    2023年04月23日
    瀏覽(28)
  • Cursor——自動(dòng)編碼神器!安裝且使用教程

    Cursor——自動(dòng)編碼神器!安裝且使用教程

    官方gitHub網(wǎng)站 Cursor,是OpenAI研發(fā)的一款程序員輔助工具。 保留了Idea的代碼風(fēng)格,界面簡(jiǎn)潔,支持多種插件 支持Max,Linux,Windows系統(tǒng) 在工作區(qū)輸入需求,可中文或者英文,即可快速生成相應(yīng)需求實(shí)現(xiàn)代碼 選擇代碼可進(jìn)行分析代碼,解讀代碼,幫助理解代碼含義 根據(jù)與AI進(jìn)行

    2024年02月16日
    瀏覽(18)
  • AI智能編程工具Cursor使用介紹

    AI智能編程工具Cursor使用介紹

    為使用人工智能編程而構(gòu)建的編輯器,一款 人工智能編程軟件 、 智能Ai代碼生成工具 。 它有什么特點(diǎn)呢? 集成了 GPT-4 ,國(guó)內(nèi)可用,有強(qiáng)大的自動(dòng)代碼生成能力,可以說(shuō)是為程序員量身打造。 它可以根據(jù)你的需求,自動(dòng)生成代碼,分析代碼,優(yōu)化代碼,并可以基于某個(gè)代碼

    2024年02月09日
    瀏覽(25)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包