版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、電子課件MySQL數(shù)據(jù)庫應(yīng)用4.8 創(chuàng)建觸發(fā)器項目4:創(chuàng)建數(shù)據(jù)庫對象數(shù)據(jù)庫應(yīng)用任務(wù)3 觸發(fā)器的創(chuàng)建和管理 創(chuàng)建觸發(fā)器 教學(xué)目標(biāo) 素質(zhì)目標(biāo) 知識目標(biāo)1.培養(yǎng)學(xué)生自主學(xué)習(xí)能力;2.培養(yǎng)學(xué)生綜合應(yīng)用知識解決實際問題的能力;3.思政內(nèi)容:通過講觸發(fā)器的一個重要特性,與計算機病毒的特性相聯(lián)系,向?qū)W生傳達正能量信息1.了解觸發(fā)器的使用場景;2.理解創(chuàng)建觸發(fā)器的各項語法規(guī)則;3.掌握創(chuàng)建INSERT、DELETE觸發(fā)器的方法; 能力目標(biāo)具備根據(jù)具體項目需求創(chuàng)建觸發(fā)器的能力 教學(xué)重點創(chuàng)建INSERT、DELETE觸發(fā)器。 教學(xué)難點創(chuàng)建INSERT觸發(fā)器,要求對前面第四章和第五章的內(nèi)容比較熟練。教學(xué)重難點1.抽
2、查與評講作業(yè);2.復(fù)習(xí)存儲過程的創(chuàng)建及調(diào)用方法;3.檢查課程預(yù)習(xí)情況:“觸發(fā)器的執(zhí)行時間有哪兩種?”“觸發(fā)事件有哪些?” 創(chuàng)建觸發(fā)器5知識儲備1什么是觸發(fā)器觸發(fā)器是一個特殊的存儲過程,它與表緊密相連?;诒砘蛞晥D定義了觸發(fā)器后,當(dāng)表或視圖中的數(shù)據(jù)有對應(yīng)操作事件發(fā)生時,激活觸發(fā)器,從而執(zhí)行觸發(fā)器中所定義的語句。在MySQL中,只有觸發(fā)INSERT、UPDATE和DELETE語句時,才會自執(zhí)行所設(shè)置的操作,而其他SQL語句不會激活觸發(fā)器。在實際應(yīng)用中,通過使用觸發(fā)器來對表實施比MySQL數(shù)據(jù)庫本身標(biāo)準(zhǔn)的功能更精細、更復(fù)雜的數(shù)據(jù)控制功能,當(dāng)觸發(fā)器中所定義的數(shù)據(jù)被改變時,觸發(fā)器被自動激活,并比較觸發(fā)器
3、中所定義的規(guī)則以防止對數(shù)據(jù)進行非法修改,或者執(zhí)行觸發(fā)器中所定義的操作,以實現(xiàn)用戶需求的功能。創(chuàng)建觸發(fā)器 6知識儲備互動:1你是如何理解觸發(fā)器的?7創(chuàng)建觸發(fā)器知識儲備2創(chuàng)建觸發(fā)器創(chuàng)建觸發(fā)器的語法規(guī)則:CREATE TRIGGER 觸發(fā)器名 BEFORE|AFTER 觸發(fā)事件 ON 表名 FOR EACH ROW 觸發(fā)器動作“BEFORE|AFTER”:表示觸發(fā)器執(zhí)行時間,BEFORE是指在觸發(fā)器事件之前執(zhí)行觸發(fā)器語句,AFTER是指在觸發(fā)器事件之后執(zhí)行觸發(fā)器語句;“觸發(fā)事件”:觸發(fā)器執(zhí)行條件,包括INSERT、UPDATE和DELETE三種事件?!癐NSERT”表示向表中插入新行時激活觸發(fā)器;“
4、UPDATE”表示更改表數(shù)據(jù)時激活觸發(fā)器;“DELETE”表示刪除表數(shù)據(jù)時激活觸發(fā)器。創(chuàng)建觸發(fā)器 8知識儲備2創(chuàng)建觸發(fā)器“FOR EACH ROW”:表示對table_name表中任何一條記錄進行的操作滿足觸發(fā)條件時都會觸發(fā)該觸發(fā)器;觸發(fā)器動作:表示觸發(fā)器被激活后要執(zhí)行的語句。在觸發(fā)器的SQL語句中,可以關(guān)聯(lián)表中的任何列,在對列進行標(biāo)識時,可能會使用到 “OLD.列名”和“NEW.列名”,其中“OLD.列名”關(guān)聯(lián)現(xiàn)有行的一列在被更新或刪除前的值,“NEW.列名”關(guān)聯(lián)新一行的插入或更新現(xiàn)有行的一列的值?!癗EW.列名”:用于INSERT語句和UPDATE語句;“OLD.列名”:用于DELETE語
5、句和UPDATE語句。創(chuàng)建觸發(fā)器 9知識儲備互動問答:“NEW.列名”和“OLD.列名”適用于哪些情況?10創(chuàng)建觸發(fā)器任務(wù)實施【任務(wù)1】在XSCJ數(shù)據(jù)庫中創(chuàng)建一個number表,用于統(tǒng)計選修了各門課程的學(xué)生人數(shù),要求在CJ表中添加學(xué)生的選課信息時,在number表中該門課程的選課人數(shù)會自動增加。第一步:做準(zhǔn)備工作,創(chuàng)建用于存放統(tǒng)計人數(shù)的number表。首先創(chuàng)建一個number0表,用于存放每門課已有的選課人數(shù)。mysql create table number0 - select 課程號,count(*) 選課人數(shù) - from cj - group by 課程號;Query OK, 9 ro
6、ws affected (0.07 sec)創(chuàng)建觸發(fā)器 11任務(wù)實施然后創(chuàng)建number表,用于存放所有課程的選課人數(shù)。mysql create table number - select kc.課程號,選課人數(shù) - from kc left join number0 - on kc.課程號=number0.課程號;把number表中選課人數(shù)=NULL的改為選課人數(shù)=0:mysql update number set 選課人數(shù)=0 where 選課人數(shù) is null;查看number表現(xiàn)在已存放的數(shù)據(jù)情況:mysql select * from number;查詢結(jié)果如圖所示:創(chuàng)建觸發(fā)器 1
7、2任務(wù)實施第二步:創(chuàng)建觸發(fā)器。mysql create trigger insert_cj after insert - on cj - for each row - begin - update number set 選課人數(shù)=選課人數(shù)+1 where 課程號=new.課程號; - end /創(chuàng)建觸發(fā)器 13任務(wù)實施第三步:向CJ表中插入數(shù)據(jù),驗證觸發(fā)器功能。mysql insert into cj values(2020110106,114,67,0),(2020110201,110,93,0);然后查看現(xiàn)在的number表數(shù)據(jù),如圖所示。創(chuàng)建觸發(fā)器 14知識儲備互動操作:1創(chuàng)建numbe
8、r0表。2創(chuàng)建number表。3把number表中選課人數(shù)=NULL改為選課人數(shù)=0。4創(chuàng)建觸發(fā)器 insert_cj1。15創(chuàng)建觸發(fā)器任務(wù)實施【任務(wù)2】在XSCJ數(shù)據(jù)庫中,創(chuàng)建Delete觸發(fā)器,要求實現(xiàn)在XSQK表中刪除某個學(xué)生信息時(以主鍵學(xué)號作為刪除條件),同時在CJ表中也將該學(xué)生的選課信息刪除。mysql delimiter /mysql create trigger delete_xs before delete - on xsqk - for each row - begin - delete from cj where 學(xué)號=old.學(xué)號; - end /Query OK, 0
9、 rows affected (0.01 sec)mysql delimiter ;創(chuàng)建觸發(fā)器 16任務(wù)實施驗證觸發(fā)器功能:假設(shè)需要刪除XSQK表中學(xué)號為“2020110101”的學(xué)生。在XSQK表中刪除該生之前,先查看一下該生在CJ表中的成績信息,如圖所示:在XSQK表中刪除學(xué)號為“2020110101”的學(xué)生:mysql delete from xsqk where 學(xué)號=2020110101;再查看該生在CJ表中的成績信息:mysql select * from CJ where 學(xué)號=2020110101;Empty set (0.00 sec)從運行后提示信息可見,在CJ表中已經(jīng)沒有學(xué)號為“2020110101”的成績信息了。創(chuàng)建觸發(fā)器 17知識儲備互動操作:1創(chuàng)建Delete觸發(fā)器。18創(chuàng)建觸發(fā)器復(fù)習(xí):1什么是觸發(fā)器;2創(chuàng)建觸發(fā)器的語法規(guī)則;3創(chuàng)建INSERT、U
溫馨提示
- 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)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030年中國不銹鋼玻璃夾數(shù)據(jù)監(jiān)測研究報告
- 2025至2030年中國三邊封立式包裝機數(shù)據(jù)監(jiān)測研究報告
- 2025至2030年中國PET保鮮瓶數(shù)據(jù)監(jiān)測研究報告
- 2025至2031年中國出料壺行業(yè)投資前景及策略咨詢研究報告
- 小學(xué)音樂課程設(shè)計與實施計劃
- 商業(yè)生產(chǎn)中危險源辨識與防控策略分析報告
- 山體滑坡勘察報告
- 遺址調(diào)研報告
- 2024年藝術(shù)表演場館服務(wù)項目資金需求報告代可行性研究報告
- 音樂課程設(shè)計思想和理念
- 茶室經(jīng)營方案
- 軍隊文職崗位述職報告
- 小學(xué)數(shù)學(xué)六年級解方程練習(xí)300題及答案
- 電抗器噪聲控制與減振技術(shù)
- 中醫(yī)健康宣教手冊
- 2024年江蘇揚州市高郵市國有企業(yè)招聘筆試參考題庫附帶答案詳解
- 消費醫(yī)療行業(yè)報告
- 品學(xué)課堂新范式
- GB/T 1196-2023重熔用鋁錠
- 運輸行業(yè)員工崗前安全培訓(xùn)
- 公路工程安全風(fēng)險辨識與防控手冊
評論
0/150
提交評論