版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
實訓(xùn)案例名稱:游標(biāo)一、任務(wù)介紹游標(biāo)是一個存儲在MySQL數(shù)據(jù)庫里用來查詢的對象,它可以每次從結(jié)果集里獲取一行數(shù)據(jù),進行相應(yīng)的處理。有了游標(biāo),就可以滾動查詢滿足條件的數(shù)據(jù),可以做一些復(fù)雜的處理。二、實現(xiàn)步驟1.使用游標(biāo)#使用用戶名root和相應(yīng)密碼,連接本地MySQLC:\Users\Administrator>mysql-uroot-p123456mysql:[Warning]Usingapasswordonthecommandlineinterfacecanbeinsecure.#使用shop數(shù)據(jù)庫mysql>USEshopDatabasechanged#創(chuàng)建員工表employee_infomysql>CREATETABLEemployee_info(idintnotnullAUTO_INCREMENT,namevarchar(255),salaryint,primarykey(id));QueryOK,0rowsaffected(0.36sec)#向員工表employee_info插入數(shù)據(jù)mysql>INSERTINTOemployee_infoVALUES(1,'小明',3700),(2,'小紅',5700),(3,'小藍',7800);QueryOK,3rowsaffected(0.01sec)Records:3Duplicates:0Warnings:0#查詢員工表employee_info的數(shù)據(jù),使用SELECT語句,一次獲取滿足條件的所有數(shù)據(jù)mysql>SELECT*FROMemployee_info;+----+------+--------+|id|name|salary|+----+------+--------+|1|小明|3700||2|小紅|5700||3|小藍|7800|+----+------+--------+3rowsinset(0.01sec)#修改結(jié)束符$$mysql>DELIMITER$$#創(chuàng)建存儲過程p2(),定義游標(biāo)cursor2,讀取每一行數(shù)據(jù)mysql>CREATEPROCEDUREp2()BEGINDECLAREc_idint;DECLAREc_namevarchar(20);DECLAREc_salaryint;DECLAREcursor2CURSORFORSELECTid,name,salaryFROMemployee_info;OPENcursor2;FETCHcursor2INTOc_id,c_name,c_salary;SELECTc_id,c_name,c_salary;FETCHcursor2INTOc_id,c_name,c_salary;SELECTc_id,c_name,c_salary;FETCHcursor2INTOc_id,c_name,c_salary;SELECTc_id,c_name,c_salary;CLOSEcursor2;END$$QueryOK,0rowsaffected(0.00sec)#修改結(jié)束符mysql>DELIMITER;#調(diào)用存儲過程p2()mysql>CALLp2();#使用游標(biāo)一次,輸出一次結(jié)果+------+--------+----------+|c_id|c_name|c_salary|+------+--------+----------+|1|小明 | 3700|+------+--------+----------+1rowinset(0.00sec)#使用游標(biāo)一次,輸出一次結(jié)果+------+--------+----------+|c_id|c_name|c_salary|+------+--------+----------+|2|小紅 | 5700|+------+--------+----------+1rowinset(0.01sec)#使用游標(biāo)一次,輸出一次結(jié)果+------+--------+----------+|c_id|c_name|c_salary|+------+--------+----------+|3|小藍|7800|+------+--------+----------+1rowinset(0.02sec)mysql>2.游標(biāo)的WHILE循環(huán)#使用用戶名root和相應(yīng)密碼,連接本地MySQLC:\Users\Administrator>mysql-uroot-p123456mysql:[Warning]Usingapasswordonthecommandlineinterfacecanbeinsecure.#使用shop數(shù)據(jù)庫mysql>USEshopDatabasechanged#查詢員工表employee_infomysql>SELECT*FROMemployee_info;+----+------+--------+|id|name|salary|+----+------+--------+|1|小明|3700||2|小紅|5700||3|小藍|7800|+----+------+--------+3rowsinset(0.00sec)#修改結(jié)束符$$mysql>DELIMITER$$#定義一個存儲過程,先計算出結(jié)果總條數(shù),再使用WHILE循環(huán)mysql>CREATEPROCEDUREp3()BEGINDECLAREc_idint;DECLAREc_namevarchar(20);DECLAREc_salaryint;DECLAREsumintdefault0;DECLAREcursor3CURSORFORSELECTid,name,salaryFROMemployee_info;SELECTcount(*)INTOsumFROMemployee_info;OPENcursor3;WHILE(sum>0)DOFETCHcursor3INTOc_id,c_name,c_salary;SELECTc_id,c_name,c_salary,sum;SETsum=sum-1;ENDWHILE;CLOSEcursor3;END$$#修改結(jié)束符mysql>DELIMITER;#調(diào)用存儲過程,輸出每次循環(huán)的結(jié)果mysql>CALLp3();+------+--------+----------+------+|c_id|c_name|c_salary|sum|+------+--------+----------+------+|1|小明|3700|3|+------+--------+----------+------+1rowinset(0.01sec)+------+--------+----------+------+|c_id|c_name|c_salary|sum|+------+--------+----------+------+|2|小紅|5700|2|+------+--------+----------+------+1rowinset(0.02sec)+------+--------+----------+------+|c_id|c_name|c_salary|sum|+------+--------+----------+------+|3|小藍|7800|1|+------+--------+----------+------+1rowinset(0.02sec)QueryOK,0rowsaffected(0.04sec)#刪除存儲過程mysql>DROPPROCEDUREp3;#修改結(jié)束符$$mysql>DELIMITER$$#mysql>CREATEPROCEDUREp3()BEGINDECLAREc_idint;DECLAREc_namevarchar(20);DECLAREc_salaryint;DECLAREflagintdefault0;DECLAREcursor3CURSORFORSELECTid,name,salaryFROMemployee_info;DECLARECONTINUEHANDLERFORNOTFOUNDSETflag=1;OPENcursor3;WHILE(flag=0)DOFETCHcursor3INTOc_id,c_name,c_salary;SELECTc_id,c_name,c_salary;ENDWHILE;CLOSEcursor3;END$$#修改結(jié)束符mysql>DELIMITER;/*設(shè)置為1時,存儲過程會調(diào)用CONTINUE命令繼續(xù)查詢一次,但是調(diào)用EXIT命令時不會繼續(xù)查詢*/mysql>CALLp3();+------+--------+----------+|c_id|c_name|c_salary|+------+--------+----------+|1|小明|3700|+------+--------+----------+1rowinset(0.00sec)+------+--------+----------+|c_id|c_name|c_salary|+------+--------+----------+|2|小紅|5700|+------+--------+----------+1rowinset(0.01sec)+------+--------+----------+|c_id|c_name|c_salary|+------+--------+----------+|3|小藍|7800|+------+--------+----------+1rowinset(0.01sec)+------+--------+----------+|c_id|c_name|c_salary|+------+--------+----------+|3|小藍|7800|+------+--------+----------+1rowinset(0.02sec)QueryOK,0rowsaffected(0.03sec)#刪除存儲過程mysql>DROPPROCEDUREp3;#修改結(jié)束符$$mysql>DELIMITER$$#使用EXIT進行變量判斷,如果找不到,則設(shè)置變量值為1mysql>CREATEPROCEDUREp3()BEGINDECLAREc_idint;DECLAREc_namevarchar(20);DECLAREc_salaryint;DECLAREflagintdefault0;DECLAREcursor3CURSORFORSELECTid,name,salaryFROMemployee_info;DECLAREEXITHANDLERFORNOTFOUNDSETflag=1;OPENcursor3;WHILE(flag=0)DOFETCHcursor3INTOc_id,c_name,c_salary;SELECTc_id,c_name,c_salary;ENDWHILE;CLOSEcursor3;END$$QueryOK,0rowsaffected(0.00sec)#修改結(jié)束符mysql>DELIMITER;#調(diào)用存儲過程mysql>CALLp3();+------+--------+----------+|c_id|c_name|c_salary|+------+--------+----------+|1|小明|3700|+------+--------+----------+1rowinset(0.00sec)+------+--------+----------+|c_id|c_name|c_salary|+------+--------+----------+|2|小紅|5700|+------+--------+----------+1rowinset(0.01sec)+------+--------+----------+|c_id|c_name|c_salary|+------+--------+----------+|3|小藍|7800|+------+--------+----------+1rowinset(0.02sec)QueryOK,0rowsaffected(0.03sec)mysql>3.游標(biāo)的REPEAT循環(huán)#使用用戶名root和相應(yīng)密碼,連接本地MySQLC:\Users\Administrator>mysql-uroot-p123456mysql:[Warning]Usingapasswordonthecommandlineinterfacecanbeinsecure.#使用shop數(shù)據(jù)庫mysql>USEshopDatabasechanged#查詢員工表employee_infomysql>SELECT*FROMemployee_info;+----+--------+--------+|id|name|salary|+----+--------+--------+|1|小明|3700||2|小紅|5700||3|小藍|7800|+----+--------+--------+3rowsinset(0.00sec)#修改結(jié)束符$$mysql>DELIMITER$$#定義存儲過程p4(),定義游標(biāo)cursor4,使用REPEAT循環(huán)mysql>CREATEPROCEDUREp4()BEGINDECLAREc_idint;DECLAREc_namevarchar(20);DECLAREc_salaryint;DECLAREflagintdefault0;DECLAREcursor4CURSORFORSELECTid,name,salaryFROMemployee_info;DECLAREEXITHANDLERFORNOTFOUNDSETflag=1;OPENcursor4;REPEATFETCHcursor4INTOc_id,c_name,c_salary;SELECTc_id,c_name,c_salary;UNTILflag=1ENDREPEAT;CLOSEcursor4;END$$QueryOK,0rowsaffected(0.00sec)#修改結(jié)束符mysql>DELIMITER;#調(diào)用存儲過程p4(),循環(huán)輸出結(jié)果mysql>CALLp4();+------+--------+----------+|c_id|c_name|c_salary|+------+--------+----------+|1|小明|3700|+------+--------+----------+1rowinset(0.00sec)+------+--------+----------+|c_id|c_name|c_salary|+------+--------+----------+|2|小紅|5700|+------+--------+----------+1rowinset(0.01sec)+------+--------+----------+|c_id|c_name|c_salary|+------+--------+----------+|3|小藍|7800|+------+--------+----------+1rowinset(0.04sec)QueryOK,0rowsaffected(0.05sec)mysql>4.游標(biāo)的LOOP循環(huán)#使用用戶名root和相應(yīng)密碼,連接本地MySQLC:\Users\Administrator>mysql-uroot-p123456mysql:[Warning]Usingapasswordonthecommandlineinterfacecanbeinsecure.#使用shop數(shù)據(jù)庫mysql>USEshopDatabasechanged#查看員工表employee_info的數(shù)據(jù)mysql>SELECT*FROMemployee_info;+----+--------+--------+|id|name|salary|+----+--------+--------+|1|小明|3700||2|小紅|5700||3|小藍|7800|+----+--------+--------+3rowsinset(0.00sec)#修改結(jié)束符$$mysql>DELIMITER$$#創(chuàng)建存儲過程p5(),定義游標(biāo)cursor5,使用LOOP循環(huán)mysql>CREATEPROCEDUREp5()BEGINDECLAREc_idint;DECLAREc_namevarchar(20);DECLAREc_salaryint;DECLAREflagintdefault0;DECLAREcursor5CURSORFORSELECTid,name,salaryFROMemployee_info;DECLAREEXITHANDLERFORNOT
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025航空航天制造產(chǎn)業(yè)集群發(fā)展現(xiàn)狀分析技術(shù)發(fā)展趨勢分析市場競爭策略評估報告
- 企業(yè)形象培訓(xùn)
- 中學(xué)生營養(yǎng)健康研究性學(xué)習(xí)方案設(shè)計
- 銷售人員每日工作日志模板
- 高三氣候類型復(fù)習(xí)專題講義與習(xí)題解析
- 污水處理廠管理及安全要點
- 企業(yè)員工健康管理主題培訓(xùn)方案
- 新型環(huán)保水泥冷再生技術(shù)應(yīng)用方案
- 員工健康安全培訓(xùn)課件
- 酒店活動策劃方案前言(3篇)
- 評標(biāo)技術(shù)專家注意事項
- 糖尿病床旁護理查房
- DB32∕T 5085-2025 無機涂料應(yīng)用技術(shù)規(guī)程
- 食品檢驗員崗位面試問題及答案
- DB37∕T 5234-2022 超高程泵送混凝土應(yīng)用技術(shù)規(guī)程
- 設(shè)備管理二級管理制度
- 十五五學(xué)校五年發(fā)展規(guī)劃(2026-2030)
- 養(yǎng)老機構(gòu)5項精細化護理照料內(nèi)容+18張護理服務(wù)操作流程圖
- T/CCS 032-2023礦井智能化通風(fēng)系統(tǒng)建設(shè)技術(shù)規(guī)范
- 2025年四川中鐵建昆侖投資集團有限公司招聘筆試參考題庫附帶答案詳解
- 2025-2030中國推拉高爾夫車行業(yè)市場發(fā)展趨勢與前景展望戰(zhàn)略分析研究報告
評論
0/150
提交評論