MySQL數(shù)據(jù)庫(kù)應(yīng)用項(xiàng)目式教程課件:創(chuàng)建觸發(fā)器_第1頁(yè)
MySQL數(shù)據(jù)庫(kù)應(yīng)用項(xiàng)目式教程課件:創(chuàng)建觸發(fā)器_第2頁(yè)
MySQL數(shù)據(jù)庫(kù)應(yīng)用項(xiàng)目式教程課件:創(chuàng)建觸發(fā)器_第3頁(yè)
MySQL數(shù)據(jù)庫(kù)應(yīng)用項(xiàng)目式教程課件:創(chuàng)建觸發(fā)器_第4頁(yè)
MySQL數(shù)據(jù)庫(kù)應(yīng)用項(xiàng)目式教程課件:創(chuàng)建觸發(fā)器_第5頁(yè)
已閱讀5頁(yè),還剩18頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

創(chuàng)建觸發(fā)器本節(jié)內(nèi)容1.創(chuàng)建INSERT類(lèi)型觸發(fā)器2.創(chuàng)建DELETE類(lèi)型觸發(fā)器3.創(chuàng)建UPDATE類(lèi)型觸發(fā)器創(chuàng)建觸發(fā)器觸發(fā)器是一種特殊的存儲(chǔ)過(guò)程,主要通過(guò)事件進(jìn)行觸發(fā)而自動(dòng)執(zhí)行。觸發(fā)器可以在向數(shù)據(jù)表中插入、修改或刪除數(shù)據(jù)時(shí)進(jìn)行檢查,以保證數(shù)據(jù)的完整性和一致性。創(chuàng)建觸發(fā)器使用CREATETRIGGER語(yǔ)句。01創(chuàng)建INSERT類(lèi)型觸發(fā)器1.創(chuàng)建INSERT類(lèi)型觸發(fā)器在圖形管理工具M(jìn)ySQL中對(duì)studb數(shù)據(jù)庫(kù)中student表進(jìn)行以下操作:(1)創(chuàng)建觸發(fā)器tr_insert_student,該觸發(fā)器功能為向?qū)W生表(student)中插入一行數(shù)據(jù)之前,檢查total_credits字段,如果total_credits值小于5,則設(shè)置total_credits值為10,并進(jìn)行測(cè)試。(2)創(chuàng)建觸發(fā)器tr_insert_score,實(shí)現(xiàn)當(dāng)向成績(jī)表“score”插入一行數(shù)據(jù)時(shí),根據(jù)成績(jī)對(duì)學(xué)生表“student”的總學(xué)分進(jìn)行修改。如果成績(jī)>=60,總學(xué)分加上該課程的學(xué)分。否則總學(xué)分不變?!救蝿?wù)描述】任務(wù)要求在插入數(shù)據(jù)之前對(duì)學(xué)分進(jìn)行檢查,所以觸發(fā)時(shí)刻用BEFORE關(guān)鍵字,題目要求是插入數(shù)據(jù),因此觸發(fā)事件用INSERT,題目要求向?qū)W生表(student)中插入數(shù)據(jù),所以表名用student?!救蝿?wù)分析】1.創(chuàng)建INSERT類(lèi)型觸發(fā)器(1)創(chuàng)建觸發(fā)器tr_insert_student?!救蝿?wù)實(shí)施】①在Navicat查詢編輯器窗口輸入以下SQL語(yǔ)句,并執(zhí)行。1.創(chuàng)建INSERT類(lèi)型觸發(fā)器【任務(wù)實(shí)施】②在Navicat查詢編輯器窗口輸入以下SQL語(yǔ)句,并執(zhí)行。INSERTINTOstudentVALUES('23000109','王澤','男','2004-04-13','信息工程系','22大數(shù)據(jù)1',2);③查看student表數(shù)據(jù)。插入語(yǔ)句中設(shè)置的total_credits字段值為2,但是student表中插入數(shù)據(jù)的total_credits字段值為10,說(shuō)明我們創(chuàng)建的觸發(fā)器起作用了。1.創(chuàng)建INSERT類(lèi)型觸發(fā)器(2)創(chuàng)建觸發(fā)器tr_insert_score?!救蝿?wù)實(shí)施】①在Navicat查詢編輯器窗口輸入以下SQL語(yǔ)句,并執(zhí)行,創(chuàng)建觸發(fā)器tr_insert_score,并執(zhí)行。1.創(chuàng)建INSERT類(lèi)型觸發(fā)器【任務(wù)實(shí)施】②在Navicat查看向score表插入數(shù)據(jù)之前student表中學(xué)號(hào)為“'23000103”學(xué)生的總學(xué)分total_credits??梢钥闯觯谙騭core表插入數(shù)據(jù)之前學(xué)號(hào)為“'23000103”學(xué)生的總學(xué)分total_credits為17。1.創(chuàng)建INSERT類(lèi)型觸發(fā)器【任務(wù)實(shí)施】③在Navicat查詢編輯器窗口輸入以下SQL語(yǔ)句,并執(zhí)行,向score表中插入一條數(shù)據(jù)。1.創(chuàng)建INSERT類(lèi)型觸發(fā)器【任務(wù)實(shí)施】④在Navicat查詢編輯器窗口輸入以下SQL語(yǔ)句,并執(zhí)行,查看score表新插入的數(shù)據(jù)。SELECT*FROMscoreWHEREsno='23000103';可以看出,學(xué)號(hào)為“23000103”的學(xué)生成績(jī)插入score表中了。1.創(chuàng)建INSERT類(lèi)型觸發(fā)器【任務(wù)實(shí)施】⑤在Navicat查詢編輯器窗口輸入以下SQL語(yǔ)句,并執(zhí)行,查看student表中學(xué)號(hào)為“'23000103”學(xué)生的總學(xué)分total_credits。與第②步相比,學(xué)號(hào)為“23000103”學(xué)生的總學(xué)分total_credits由17變?yōu)?0,說(shuō)明觸發(fā)器tr_insert_score起作用了,在向score表中插入數(shù)據(jù)后,激活觸發(fā)器tr_insert_score執(zhí)行,觸發(fā)器將student表中對(duì)應(yīng)學(xué)號(hào)學(xué)生的總學(xué)分total_credits進(jìn)行了修改。02創(chuàng)建DELETE類(lèi)型觸發(fā)器2.創(chuàng)建DELETE類(lèi)型觸發(fā)器在圖形管理工具Navicat中對(duì)studb數(shù)據(jù)庫(kù)中student表進(jìn)行以下操作:創(chuàng)建一個(gè)觸發(fā)器tr_delete_student,該觸發(fā)器功能為在學(xué)生表(student)中刪除一個(gè)學(xué)生記錄之前,刪除該學(xué)生的所有成績(jī)記錄,并進(jìn)行測(cè)試?!救蝿?wù)描述】在編寫(xiě)觸發(fā)器tr_delete_student時(shí),任務(wù)要求在刪除學(xué)生記錄之前刪除該學(xué)生的成績(jī)記錄,所以觸發(fā)時(shí)刻用BEFORE關(guān)鍵字,題目要求是刪除數(shù)據(jù),因此觸發(fā)事件用DELETE,題目要求刪除學(xué)生表(student)中學(xué)生記錄,所以表名用student?!救蝿?wù)分析】2.創(chuàng)建DELETE類(lèi)型觸發(fā)器【任務(wù)實(shí)施】①在Navicat查詢編輯器窗口輸入以下SQL語(yǔ)句,并執(zhí)行。2.創(chuàng)建DELETE類(lèi)型觸發(fā)器【任務(wù)實(shí)施】②在Navicat查詢編輯器窗口輸入以下SQL語(yǔ)句,并執(zhí)行,刪除學(xué)號(hào)為'23000101'的學(xué)生記錄,然后查看score表中數(shù)據(jù)。對(duì)比上圖可以看出,當(dāng)執(zhí)行完刪除學(xué)號(hào)為'23000101'的學(xué)生記錄后,score表中該學(xué)生對(duì)應(yīng)的成績(jī)也被刪除了。DELETEFROMstudentsno='23000101';執(zhí)行刪除語(yǔ)句前score表中數(shù)據(jù)執(zhí)行刪除語(yǔ)句后score表中數(shù)據(jù)03創(chuàng)建UPDATE類(lèi)型觸發(fā)器3.創(chuàng)建UPDATE類(lèi)型觸發(fā)器在圖形管理工具M(jìn)ySQL中對(duì)studb數(shù)據(jù)庫(kù)中student表進(jìn)行以下操作:創(chuàng)建一個(gè)觸發(fā)器tr_update_student,該觸發(fā)器功能為更新學(xué)生表(student)中更新total_credits字段之后將用戶變量info值設(shè)置為“學(xué)分已更新”,并進(jìn)行測(cè)試?!救蝿?wù)描述】在編寫(xiě)觸發(fā)器tr_update_student時(shí),任務(wù)要求在更新學(xué)生表(student)字段之后設(shè)置用戶變量info的值,所以觸發(fā)時(shí)刻用AFTER關(guān)鍵字,要求是更新數(shù)據(jù),因此觸發(fā)事件用UPDATE,任務(wù)要求對(duì)學(xué)生表(student)進(jìn)行操作,所以表名用student?!救蝿?wù)分析】3.創(chuàng)建UPDATE類(lèi)型觸發(fā)器【任務(wù)實(shí)施】①在Navicat查詢編輯器窗口輸入以下SQL語(yǔ)句,并執(zhí)行。3.創(chuàng)建UPDATE類(lèi)型觸發(fā)器【任務(wù)實(shí)施】②在Navicat查詢編輯器窗口輸入以下SQL語(yǔ)句,并執(zhí)行,將學(xué)號(hào)為'23000102'的學(xué)生記錄total_credits字段的值加1。當(dāng)更新完學(xué)號(hào)為'23000102'學(xué)生的記錄后,結(jié)果中顯示“學(xué)分已更新”的提

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論