真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

mysql函數(shù)中可不可以用游標(biāo)

這篇“MySQL函數(shù)中可不可以用游標(biāo)”文章的知識(shí)點(diǎn)大部分人都不太理解,所以小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細(xì),步驟清晰,具有一定的借鑒價(jià)值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來(lái)看看這篇“mysql函數(shù)中可不可以用游標(biāo)”文章吧。

目前創(chuàng)新互聯(lián)已為上1000家的企業(yè)提供了網(wǎng)站建設(shè)、域名、虛擬主機(jī)、網(wǎng)站托管、服務(wù)器托管、企業(yè)網(wǎng)站設(shè)計(jì)、皮山網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。

mysql函數(shù)中可以用游標(biāo)。在mysql中,游標(biāo)只能用于存儲(chǔ)過(guò)程和函數(shù);存儲(chǔ)過(guò)程或函數(shù)中的查詢有時(shí)會(huì)返回多條記錄,而使用簡(jiǎn)單的SELECT語(yǔ)句,沒(méi)有辦法得到第一行、下一行或前十行的數(shù)據(jù),這時(shí)可以使用游標(biāo)來(lái)逐條讀取查詢結(jié)果集中的記錄。使用游標(biāo)可以對(duì)檢索出來(lái)的數(shù)據(jù)進(jìn)行前進(jìn)或者后退操作,主要用于交互式應(yīng)用,如用戶滾動(dòng)屏幕上的數(shù)據(jù)。

mysql函數(shù)中可不可以用游標(biāo)

本教程操作環(huán)境:windows7系統(tǒng)、mysql8版本、Dell G3電腦。

mysql函數(shù)中可以用游標(biāo)。

游標(biāo):也稱為光標(biāo),是一個(gè)存儲(chǔ)在DBMS服務(wù)器上的數(shù)據(jù)庫(kù)查詢,它不是一條select語(yǔ)句,而是被該語(yǔ)句檢索出來(lái)的結(jié)果集。

游標(biāo)的用途:對(duì)檢索出來(lái)的數(shù)據(jù)進(jìn)行前進(jìn)或者后退操作,主要用于交互式應(yīng)用,如用戶滾動(dòng)屏幕上的數(shù)據(jù)

游標(biāo)的特性:

  • 能夠標(biāo)記游標(biāo)為只讀,使數(shù)據(jù)能讀取,但不能更新和刪除

  • 能控制可以執(zhí)行的定向操作(向前、向后、第一、最后、絕對(duì)位置、相對(duì)位置等)

  • 能標(biāo)記某些列為可編輯的,某些列為不可編輯的

  • 規(guī)定范圍,使游標(biāo)對(duì)創(chuàng)建它的特定請(qǐng)求(如存儲(chǔ)過(guò)程)或?qū)λ姓?qǐng)求可訪問(wèn)

  • 只是DBMS對(duì)檢索出的數(shù)據(jù)(而不是指出表中活動(dòng)數(shù)據(jù))進(jìn)行復(fù)制,使數(shù)據(jù)在游標(biāo)打開(kāi)和訪問(wèn)期間不變化

在 MySQL 中,游標(biāo)只能用于存儲(chǔ)過(guò)程和函數(shù)。

在 MySQL 中,存儲(chǔ)過(guò)程或函數(shù)中的查詢有時(shí)會(huì)返回多條記錄,而使用簡(jiǎn)單的 SELECT 語(yǔ)句,沒(méi)有辦法得到第一行、下一行或前十行的數(shù)據(jù),這時(shí)可以使用游標(biāo)來(lái)逐條讀取查詢結(jié)果集中的記錄。游標(biāo)在部分資料中也被稱為光標(biāo)。

關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)實(shí)質(zhì)是面向集合的,在 MySQL 中并沒(méi)有一種描述表中單一記錄的表達(dá)形式,除非使用 WHERE 子句來(lái)限制只有一條記錄被選中。所以有時(shí)我們必須借助于游標(biāo)來(lái)進(jìn)行單條記錄的數(shù)據(jù)處理。

1. 聲明游標(biāo)

MySQL 中使用 DECLARE 關(guān)鍵字來(lái)聲明游標(biāo),并定義相應(yīng)的 SELECT 語(yǔ)句,根據(jù)需要添加 WHERE 和其它子句。其語(yǔ)法的基本形式如下:

DECLARE cursor_name CURSOR FOR select_statement;

其中,cursor_name 表示游標(biāo)的名稱;select_statement 表示 SELECT 語(yǔ)句,可以返回一行或多行數(shù)據(jù)。

例 1

下面聲明一個(gè)名為 nameCursor 的游標(biāo),代碼如下:

mysql> DELIMITER //
mysql> CREATE PROCEDURE processnames()
    -> BEGIN
    -> DECLARE nameCursor CURSOR
    -> FOR
    -> SELECT name FROM tb_student;
    -> END//
Query OK, 0 rows affected (0.07 sec)

以上語(yǔ)句定義了 nameCursor 游標(biāo),游標(biāo)只局限于存儲(chǔ)過(guò)程中,存儲(chǔ)過(guò)程處理完成后,游標(biāo)就消失了。

2. 打開(kāi)游標(biāo)

聲明游標(biāo)之后,要想從游標(biāo)中提取數(shù)據(jù),必須首先打開(kāi)游標(biāo)。在 MySQL 中,打開(kāi)游標(biāo)通過(guò) OPEN 關(guān)鍵字來(lái)實(shí)現(xiàn),其語(yǔ)法格式如下:

OPEN cursor_name;

其中,cursor_name 表示所要打開(kāi)游標(biāo)的名稱。需要注意的是,打開(kāi)一個(gè)游標(biāo)時(shí),游標(biāo)并不指向第一條記錄,而是指向第一條記錄的前邊。

在程序中,一個(gè)游標(biāo)可以打開(kāi)多次。用戶打開(kāi)游標(biāo)后,其他用戶或程序可能正在更新數(shù)據(jù)表,所以有時(shí)會(huì)導(dǎo)致用戶每次打開(kāi)游標(biāo)后,顯示的結(jié)果都不同。

3. 使用游標(biāo)

游標(biāo)順利打開(kāi)后,可以使用 FETCH...INTO 語(yǔ)句來(lái)讀取數(shù)據(jù),其語(yǔ)法形式如下:

FETCH cursor_name INTO var_name [,var_name]...

上述語(yǔ)句中,將游標(biāo) cursor_name 中 SELECT 語(yǔ)句的執(zhí)行結(jié)果保存到變量參數(shù) var_name 中。變量參數(shù) var_name 必須在游標(biāo)使用之前定義。使用游標(biāo)類(lèi)似高級(jí)語(yǔ)言中的數(shù)組遍歷,當(dāng)?shù)谝淮问褂糜螛?biāo)時(shí),此時(shí)游標(biāo)指向結(jié)果集的第一條記錄。

MySQL 的游標(biāo)是只讀的,也就是說(shuō),你只能順序地從開(kāi)始往后讀取結(jié)果集,不能從后往前,也不能直接跳到中間的記錄。

4. 關(guān)閉游標(biāo)

游標(biāo)使用完畢后,要及時(shí)關(guān)閉,在 MySQL 中,使用 CLOSE 關(guān)鍵字關(guān)閉游標(biāo),其語(yǔ)法格式如下:

CLOSE cursor_name;

CLOSE 釋放游標(biāo)使用的所有內(nèi)部?jī)?nèi)存和資源,因此每個(gè)游標(biāo)不再需要時(shí)都應(yīng)該關(guān)閉。

在一個(gè)游標(biāo)關(guān)閉后,如果沒(méi)有重新打開(kāi),則不能使用它。但是,使用聲明過(guò)的游標(biāo)不需要再次聲明,用 OPEN 語(yǔ)句打開(kāi)它就可以了。

如果你不明確關(guān)閉游標(biāo),MySQL 將會(huì)在到達(dá) END 語(yǔ)句時(shí)自動(dòng)關(guān)閉它。游標(biāo)關(guān)閉之后,不能使用 FETCH 來(lái)使用該游標(biāo)。

以上就是關(guān)于“mysql函數(shù)中可不可以用游標(biāo)”這篇文章的內(nèi)容,相信大家都有了一定的了解,希望小編分享的內(nèi)容對(duì)大家有幫助,若想了解更多相關(guān)的知識(shí)內(nèi)容,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。


名稱欄目:mysql函數(shù)中可不可以用游標(biāo)
新聞來(lái)源:http://weahome.cn/article/jscgdh.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部