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

下載本文檔

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

文檔簡介

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

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論