




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、電子課件MySQL數(shù)據(jù)庫應(yīng)用4.6 創(chuàng)建和使用存儲過程2項目4:創(chuàng)建數(shù)據(jù)庫對象數(shù)據(jù)庫應(yīng)用任務(wù)2 創(chuàng)建存儲過程和函數(shù) 創(chuàng)建和使用存儲過程(2) 教學(xué)目標(biāo) 素質(zhì)目標(biāo) 知識目標(biāo)1.培養(yǎng)學(xué)生溫故知新的學(xué)習(xí)習(xí)慣;2.培養(yǎng)學(xué)生對前后知識綜合應(yīng)用的能力;3.思政融入點:使用存儲過程與提高工作效率的關(guān)系,強(qiáng)調(diào)工作效率的重要性。1.掌握MySQL中的 IF條件控制語句使用方法;2.掌握 CASE分支結(jié)構(gòu)使用方法;3.掌握LOOP循環(huán)控制語句使用方法;4.掌握WHILE循環(huán)控制語句使用方法; 5.掌握在工具軟件SQLyog中創(chuàng)建和管理存儲過程的方法 能力目標(biāo)1.具有在存儲過程中使用各種流程控制方法的能力。2.具備
2、使用存儲過程來進(jìn)行數(shù)據(jù)查詢的能力; 教學(xué)重點在存儲過程中如何應(yīng)用IF判斷語句和while循環(huán)控制語句的語法。 教學(xué)難點各種流程控制結(jié)構(gòu)的語法規(guī)則。教學(xué)重難點1.抽查與評講作業(yè);2.復(fù)習(xí)存儲過程的創(chuàng)建及調(diào)用方法;3.檢查課程預(yù)習(xí)情況:“你們在C語言中,學(xué)過有哪些程序設(shè)計結(jié)構(gòu)?” 創(chuàng)建和使用存儲過程5知識儲備在MySQL語言中,可以使用流程控制語句進(jìn)行來控制語句的執(zhí)行,但是只能在存儲過程或函數(shù)、觸發(fā)器或事務(wù)中定義使用。(一)IF條件控制語句 IF條件結(jié)構(gòu)的語法格式:IF 條件表達(dá)式THEN 語句塊1ELSEIF 條件表達(dá)式2 THEN 語句塊2ELSE 語句塊nEND IF;創(chuàng)建和使用存儲過程 6
3、知識儲備【IF條件控制語句示例】在存儲過程proc1中使用IF條件語句。mysql delimiter /mysql create procedure proc1(in xh char(10) - reads sql data 調(diào)用存儲過程proc1 - begin - if(select 學(xué)號 from xsqk where xsqk.學(xué)號=xh) is null then - select 無此學(xué)生信息 as 學(xué)生信息; - else - select 學(xué)號,姓名,性別,專業(yè)名 from xsqk where xsqk.學(xué)號=xh; - end if; - end /創(chuàng)建和使用存儲過程 7
4、知識儲備互動:1講述存儲過程proc1的程序設(shè)計思路。8創(chuàng)建和使用存儲過程知識儲備(二)CASE分支結(jié)構(gòu) CASE分支結(jié)構(gòu)可以提供多個條件進(jìn)行選擇,其效果與IF語句類似。CASE分支結(jié)構(gòu)的語法規(guī)則:CASE case_值 WHEN when_值1 THEN 語句1 WHEN when_值2 THEN 語句2 ELSE 語句nEND CASE 創(chuàng)建和使用存儲過程 9知識儲備【CASE分支結(jié)構(gòu)示例】使用CASE結(jié)構(gòu)判斷學(xué)生成績等級。mysql delimiter /mysql create procedure proc2(in xh char(10),in kch char(3) - begin
5、- declare fs tinyint; - if(select 學(xué)號 from cj where 學(xué)號=xh and 課程號=kch) is null then - select 無此學(xué)生成績 as 學(xué)生成績; - else - select 成績 into fs from cj where 學(xué)號=xh and 課程號=kch; - set fs=floor(fs/10); #floor是MySQL的一個取整函數(shù) - case fs創(chuàng)建和使用存儲過程 10知識儲備【CASE分支結(jié)構(gòu)示例】使用CASE結(jié)構(gòu)判斷學(xué)生成績等級。 續(xù): - when 9 | 10 then select 優(yōu)秀 as
6、 成績等級; 調(diào)用存儲過程proc2 - when 8 then select 良好 as 成績等級; - when 7 then select 中等 as 成績等級; - when 6 then select 及格 as 成績等級; - else - select 不及格 as 成績等級; - end case; - end if; - end /創(chuàng)建和使用存儲過程 11知識儲備互動:講述使用CASE結(jié)構(gòu)判斷學(xué)生成績等級的程序設(shè)計思路。12創(chuàng)建和使用存儲過程知識儲備(三)LOOP循環(huán)控制語句 LOOP的循環(huán)語句的語法規(guī)則:begin_lable:LOOP 語句序列; ITERATE begi
7、n_lable; LEAVE begin_lable1;END LOOP;創(chuàng)建和使用存儲過程 13知識儲備【LOOP循環(huán)示例】使用LOOP循環(huán)語句,用于完成輸入一個正整數(shù)并求從1到該數(shù)的累加和。 mysql delimiter /mysql create procedure addsum(in x int) - begin - set i=1,sum=0; - add_sum:loop - begin - set sum=sum+i; - set i=i+1; - end;創(chuàng)建和使用存儲過程 14DELIMITER /CREATE PROCEDURE addsum1(IN X INT)BEGI
8、NDECLARE i INT DEFAULT 1;DECLARE sum1 INT DEFAULT 0; add_sum: LOOP BEGIN SET sum1=sum1+i; SET i=i+1; END;IF iX THEN LEAVE add_sum; END IF; END LOOP; SELECT sum1 AS 累加和; END / DELIMITER ;知識儲備【LOOP循環(huán)示例】使用LOOP循環(huán)語句,用于完成輸入一個正整數(shù)并求從1到該數(shù)的累加和。 續(xù): - if ix then - leave add_sum; - end if; - end loop; loop循環(huán)語句執(zhí)行
9、結(jié)果 - select sum as 累加和; - end /mysql delimiter ;創(chuàng)建和使用存儲過程 15知識儲備互動:講述使用LOOP循環(huán)語句求累加和的程序設(shè)計思路。16創(chuàng)建和使用存儲過程知識儲備(四) WHILE循環(huán)控制語句 WHILE循環(huán)控制語句語法規(guī)則:begin_label:WHILE 布爾表達(dá)式 DO語句序列; ITERATE begin_lable; LEAVE begin_lable1;END WHILE;創(chuàng)建和使用存儲過程 17知識儲備【W(wǎng)HILE循環(huán)示例】使用WHILE循環(huán)語句求1+2+100的和。mysql delimiter /mysql create p
10、rocedure addsum1() - begin - declare i int default 1; - declare sum int default 0; - while i set sum=sum+i; - set i=i+1; - end while; - select sum; - end /mysql delimiter ;創(chuàng)建和使用存儲過程 18知識儲備互動:講述使用WHILE循環(huán)語句求累加和程序設(shè)計思路。19創(chuàng)建和使用存儲過程任務(wù)實施1.創(chuàng)建不帶參數(shù)的存儲過程并調(diào)用【任務(wù)1】創(chuàng)建一個存儲過程proc_xsqk,從數(shù)據(jù)庫XSCJ的XSQK表中查詢出所有專業(yè)名為“信息安全”的
11、人數(shù)。mysql delimiter / #改變MySQL語句結(jié)束標(biāo)志為/mysql create procedure proc_xsqk() - reads sql data - begin - select count(*) 信息安全專業(yè)人數(shù) from xsqk - where 專業(yè)名=信息安全% ; - end /mysql delimiter ; #把MySQL語句結(jié)束標(biāo)志還原為默認(rèn)的“;”【任務(wù)2】調(diào)用存儲過程proc_xsqk()。mysql call proc_xsqk();創(chuàng)建和使用存儲過程 20知識儲備互動:講述創(chuàng)建存儲過程proc_xsqk的思路。21創(chuàng)建和使用存儲過程任務(wù)
12、實施2.創(chuàng)建帶參數(shù)的存儲過程并調(diào)用【任務(wù)3】創(chuàng)建一個存儲過程proc_drop_cj,用于刪除成績表CJ中某個學(xué)生的所有成績信息。mysql delimiter / mysql create procedure proc_drop_cj(in xh char(10) - begin - delete from cj - where 學(xué)號=xh; - end/mysql delimiter ;【任務(wù)4】調(diào)用存儲過程proc_drop_cj。mysql call proc_drop_cj(2020110401);創(chuàng)建和使用存儲過程 22知識儲備互動:講述創(chuàng)建存儲過程proc_drop_cj的思路。
13、23創(chuàng)建和使用存儲過程任務(wù)實施2.創(chuàng)建帶參數(shù)的存儲過程并調(diào)用【任務(wù)5】創(chuàng)建一個帶有輸入輸出參數(shù)的存儲過程proc_count,用于統(tǒng)計xsqk表中某個指定專業(yè)名的學(xué)生人數(shù)。mysql delimiter /mysql create procedure proc_count(in ZYM varchar(20),out count_num int) - reads sql data - begin - select count(*) into count_num from xsqk - where 專業(yè)名=ZYM; - end /Query OK, 0 rows affected (0.01 sec)mysql delimiter ;【任務(wù)6】調(diào)用存儲過程proc_count,并顯示指定專業(yè)名的學(xué)生人數(shù)。mysql call proc_count(信息安全,num);創(chuàng)建和使用存儲過程 24知識儲備互動:講述創(chuàng)建存儲過程proc_count的思路。25創(chuàng)建和使用存儲過程任務(wù)拓展【拓展1】使用工具軟件SQLyog來創(chuàng)建一個存儲過程,用于查詢選修了某門課程號的男生人數(shù)。創(chuàng)建和使用存儲過程 26任務(wù)拓展【拓展2】調(diào)用存儲過程count_kch。創(chuàng)建和使用存儲過程 27知識儲備互動:使用工具軟件SQLyog來創(chuàng)建一個存儲過程,用于查詢選修了某門課
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 個人土地?zé)o償贈與合同范本
- 個人家政保潔合同范本
- 制定合同范本 作用
- fidic條件合同范本
- 買賣延期合同范本
- 醫(yī)用機(jī)甲租賃合同范本
- 凈水設(shè)備售賣合同范本
- 勞動合同范本藥店
- 出租和諧公寓合同范本
- 修建垃圾臺合同范本
- 侯馬北車輛段2023年運用機(jī)考復(fù)習(xí)題-曲沃作業(yè)場
- 手術(shù)室停電和突然停電應(yīng)急預(yù)案PPT演示課件
- 職業(yè)病危害告知卡(油漆)
- 抗震支吊架安裝檢驗批
- 橋梁各部位加固及橋梁維修技術(shù)總結(jié)
- 絲綢之路簡介
- GB/T 40336-2021無損檢測泄漏檢測氣體參考漏孔的校準(zhǔn)
- 馬工程教材《公共財政概論》PPT-第十一章 政府預(yù)算
- 第九章臺灣近現(xiàn)代史略
- FZ/T 01085-2009熱熔粘合襯剝離強(qiáng)力試驗方法
- 人工智能發(fā)展史課件
評論
0/150
提交評論