達夢數(shù)據(jù)庫原理及應用-教案 項目7 以程序方式處理學生信息管理數(shù)據(jù)表_第1頁
達夢數(shù)據(jù)庫原理及應用-教案 項目7 以程序方式處理學生信息管理數(shù)據(jù)表_第2頁
達夢數(shù)據(jù)庫原理及應用-教案 項目7 以程序方式處理學生信息管理數(shù)據(jù)表_第3頁
達夢數(shù)據(jù)庫原理及應用-教案 項目7 以程序方式處理學生信息管理數(shù)據(jù)表_第4頁
達夢數(shù)據(jù)庫原理及應用-教案 項目7 以程序方式處理學生信息管理數(shù)據(jù)表_第5頁
已閱讀5頁,還剩16頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

《達夢數(shù)據(jù)庫原理及應用》課程教案適用專業(yè):計算機應用技術、軟件技術、大數(shù)據(jù)技術等計算機類專業(yè)授課對象:高職一年級學生課程類型:專業(yè)基礎課先修課程:計算機基礎、程序設計基礎一、教案基本信息項目內(nèi)容章節(jié)任務7-1掌握DM_SQL編程基礎授課課時4課時(180分鐘)授課形式理論講授+案例分析+分組實操教學目標1.知識目標:-熟練掌握DM_SQL常量與變量的定義、賦值及作用域規(guī)則;-深入理解流程控制語句(IF…ELSE、LOOP/WHILE/REPEAT/FOR)的邏輯及應用場景;-掌握%TYPE、%ROWTYPE的使用方法及常用函數(shù)的調(diào)用;-了解游標基礎概念及異常處理的核心思路。2.能力目標:-能獨立編寫帶變量、條件判斷和循環(huán)的DM_SQL程序;-能運用循環(huán)語句實現(xiàn)批量插入、查詢等實操任務;-能排查程序中常見的語法錯誤和邏輯漏洞;-能通過小組協(xié)作完成復雜數(shù)據(jù)處理任務。3.素養(yǎng)目標:-培養(yǎng)規(guī)范編碼意識和嚴謹?shù)倪壿嬎季S;-提升問題解決能力和持之以恒的學習態(tài)度;-強化團隊協(xié)作與溝通能力,適應職場工作需求。教學重難點重點:-變量的定義、賦值及%TYPE/%ROWTYPE的靈活應用;-循環(huán)語句(WHILE/FOR)的語法及批量插入數(shù)據(jù)的實現(xiàn);-常用函數(shù)(字符串、數(shù)學)在實操中的應用。難點:-變量作用域的理解及同名變量的屏蔽規(guī)則;-循環(huán)語句的嵌套使用及終止條件的合理設置;-異常處理的基本邏輯及常見錯誤排查。教學資源多媒體課件、DM數(shù)據(jù)庫、案例素材(STUDENT、COURSE、SC表等)、實訓任務單等。思政融入通過規(guī)范編碼要求,培養(yǎng)學生的職業(yè)嚴謹性和工匠精神;2.結合批量數(shù)據(jù)處理中的難點突破,引導學生樹立“持之以恒、攻堅克難”的學習態(tài)度;3.分組實訓中強調(diào)團隊協(xié)作,培養(yǎng)學生的溝通配合能力,契合職場工作場景二、教學過程設計(一)課前導入(5分鐘)案例導入展示實際工作場景:“某職業(yè)院校要給10000名新生建立電子檔案,需向student_new表中插入10000條學號(按順序遞增)、姓名、班級等信息。如果逐條寫INSERT語句,需要重復10000次,不僅耗時還容易出錯?!碧釂栆龑伎迹骸白鳛橛嬎銠C專業(yè)的學生,你有什么辦法快速實現(xiàn)批量插入?如何像Python、Java一樣用循環(huán)簡化操作?”引出課題:“今天我們就通過DM_SQL編程基礎,學習變量、循環(huán)、函數(shù)的使用,輕松解決批量數(shù)據(jù)處理問題?!保ǘ├碚撝v授(65分鐘)【知識點1】:DM_SQL常量與變量-常量:明確6種常量類型(字符串、整型、日期等),重點講解字符串(用單引號包裹)、日期常量(“年-月-日”格式)的使用,結合學生數(shù)據(jù)示例(如'20240001'學號、'2024-09-01'入學日期)。-變量:定義語法:<變量名>[CONSTANT]<變量類型>[NOTNULL][<默認值定義符><表達式>];強調(diào)變量名命名規(guī)則(字母開頭、不與保留字沖突)。賦值方式:直接賦值:變量名:=表達式

SET變量名=表達式,示例:snoINT:=20240001(批量插入的學號起始值)。查詢賦值:SELECT列名INTO變量名FROM表名LIMIT1,示例:獲取學生表中第一條記錄的姓名。高級定義:%TYPE(綁定表列類型)和%ROWTYPE(綁定表行類型),結合示例講解優(yōu)勢:“當student表的sname列類型從VARCHAR(20)改為VARCHAR(30)時,用%TYPE定義的變量會自動適配,無需手動修改代碼”?!疽族e點提醒】變量作用域:僅在定義它的語句塊及下層語句塊可見,同名變量下層屏蔽上層。常量定義需加CONSTANT,且只能在定義時賦值,程序中不可修改?!局R點2】:流程控制語句-BEGIN…END語句塊:用于將一組語句作為整體執(zhí)行;-條件分支:IF…ELSE語句:語法+嵌套示例(判斷批量插入是否完成),強調(diào)ENDIF的閉合要求。CASE語句:簡單格式和搜索格式,示例:根據(jù)學生成績等級輸出提示信息,對比IF…ELSE的適用場景(多分支時CASE更簡潔)。-循環(huán)語句WHILE語句:語法:WHILE條件LOOP執(zhí)行部分ENDLOOP,示例:從1到10000循環(huán)生成學號,插入student_new表。FOR語句:語法:FOR計數(shù)器IN下限..上限LOOP執(zhí)行部分ENDLOOP,示例:批量查詢1-100號學生信息。LOOP+EXIT語句:語法:LOOPIF條件THENEXIT;執(zhí)行部分ENDLOOP,示例:不確定循環(huán)次數(shù)時的批量處理。REPEAT語句:語法:REPEAT執(zhí)行部分UNTIL條件,對比WHILE(先判斷后執(zhí)行)和REPEAT(先執(zhí)行后判斷)的區(qū)別?!疽族e點提醒】循環(huán)缺少終止條件會導致死循環(huán),需重點檢查(如WHILE語句中計數(shù)器未遞增)。多分支語句中ELSEIF(DM_SQL語法)不可寫成ELSEIF,避免語法錯誤?!局R點3】:注釋與常用函數(shù)-注釋:3種注釋方式的使用場景,強調(diào)代碼注釋的重要性(職業(yè)規(guī)范)。示例:給批量插入程序添加功能說明、步驟注釋。-常用函數(shù):字符串函數(shù):CONCAT(拼接學號和姓名)、LEFT(截取學號前8位作為班級號)。數(shù)學函數(shù):RAND(生成隨機成績)、ROUND(成績四舍五入)。日期函數(shù):NOW(插入當前注冊日期)、YEAR(提取出生年份)。示例:INSERTINTOstudent_new(sno,reg_date)VALUES(CONCAT('2024',LPAD(sno,4,'0')),NOW())。。(三)實操練習(100分鐘)1.任務布置分組(每組3-4人),完成以下任務:任務1:根據(jù)實訓任務單,完成DM_SQL編程基礎任務。2.過程指導教師巡視各組,重點指導:變量定義、循環(huán)條件設置、函數(shù)使用、錯誤排查。針對常見問題(如循環(huán)范圍設置不當),集中講解并演示修正方法。鼓勵小組內(nèi)成員互相幫助,分享解題思路,培養(yǎng)協(xié)作意識。3.成果展示選取2-3組展示實訓結果,點評優(yōu)點與不足,強調(diào)批量處理數(shù)據(jù)的核心思路和編程規(guī)范。(四)課堂小結與作業(yè)布置(10分鐘)1.課堂小結(5分鐘)回顧核心內(nèi)容:常量與變量的定義與賦值、3種循環(huán)語句的應用、常用函數(shù)的調(diào)用、批量數(shù)據(jù)處理的核心思路;實操要點:變量作用域注意事項、循環(huán)終止條件設置、數(shù)據(jù)類型轉換、代碼注釋規(guī)范。職業(yè)素養(yǎng):規(guī)范編碼是職場基本要求,遇到錯誤時需耐心排查,培養(yǎng)持之以恒的學習態(tài)度。2.作業(yè)布置(5分鐘)1)復習本節(jié)課知識點,完成教材習題中的題目。三、教學反思1.學生對循環(huán)語句的應用是否熟練?尤其是WHILE和FOR語句的選擇是否合理?2.變量作用域、數(shù)據(jù)類型轉換這兩個難點,學生是否能獨立排查相關錯誤?是否需要補充專項練習?3.思政融入是否自然?學生是否能體會到規(guī)范編碼和團隊協(xié)作的重要性?《達夢數(shù)據(jù)庫原理及應用》課程教案適用專業(yè):計算機應用技術、軟件技術、大數(shù)據(jù)技術等計算機類專業(yè)授課對象:高職一年級學生課程類型:專業(yè)基礎課先修課程:計算機基礎、程序設計基礎一、教案基本信息項目內(nèi)容章節(jié)任務7-2創(chuàng)建與使用存儲過程和存儲函數(shù)授課課時4課時(180分鐘)授課形式理論講授+案例分析+分組實操教學目標1.知識目標:-理解存儲過程和存儲函數(shù)的定義、特點及應用場景;-熟練掌握存儲過程(無參/帶參)的創(chuàng)建、調(diào)用、修改及刪除語法;-掌握存儲函數(shù)的創(chuàng)建、調(diào)用方法;-明確存儲過程與存儲函數(shù)的核心區(qū)別。2.能力目標:-能獨立編寫無參、帶輸入/輸出參數(shù)的存儲過程;-能創(chuàng)建并調(diào)用存儲函數(shù)實現(xiàn)數(shù)據(jù)查詢與計算;-能排查存儲過程/函數(shù)中的語法錯誤和邏輯漏洞;-能通過小組協(xié)作完成復雜業(yè)務場景的存儲過程開發(fā)。3.素養(yǎng)目標:-培養(yǎng)模塊化編程思維和規(guī)范編碼意識;-提升問題解決能力和持之以恒的學習態(tài)度;-強化團隊協(xié)作與溝通能力,契合職場開發(fā)場景。教學重難點重點:-存儲過程(無參/帶IN/OUT/INOUT參數(shù))的創(chuàng)建與調(diào)用;-存儲函數(shù)的創(chuàng)建與調(diào)用(SELECT/CALL語句);-存儲過程與存儲函數(shù)的區(qū)別與適用場景。難點:-帶輸出參數(shù)的存儲過程的參數(shù)傳遞與結果獲??;-存儲過程體中流程控制語句與SQL語句的結合使用;-存儲過程/函數(shù)的錯誤排查(語法錯誤、邏輯漏洞)。教學資源多媒體課件、DM數(shù)據(jù)庫、案例素材(STUDENT、COURSE、SC表等)、實訓任務單等。思政融入通過模塊化編程教學,培養(yǎng)學生“化繁為簡”的邏輯思維和職場工匠精神;2.結合帶參存儲過程的參數(shù)傳遞難點,引導學生樹立“嚴謹細致”的工作態(tài)度;3.分組實訓中強調(diào)團隊協(xié)作,培養(yǎng)學生的溝通配合能力,契合企業(yè)開發(fā)場景。二、教學過程設計(一)課前導入(5分鐘)案例導入回顧任務7-1場景:“通過循環(huán)語句實現(xiàn)了向student_new表插入100萬條記錄,但如果需要在多個場景重復執(zhí)行該操作,每次都要編寫完整循環(huán)代碼,存在冗余、維護不便的問題?!碧釂栆龑В骸霸赑ython、Java中,我們可以用函數(shù)封裝重復代碼,DM數(shù)據(jù)庫中是否有類似機制?如何讓批量插入、數(shù)據(jù)查詢等重復操作更簡潔高效?”引出課題:“今天我們學習存儲過程和存儲函數(shù),它們是DM數(shù)據(jù)庫中封裝重復SQL操作的核心技術,能大幅提升開發(fā)效率和代碼復用性?!保ǘ土暸f知(5分鐘)回顧上節(jié)課核心內(nèi)容:DM_SQL變量定義、流程控制語句(IF…ELSE、WHILE)、批量插入邏輯?;犹釂枺骸叭绻啻螆?zhí)行‘查詢某班級學生信息’的操作,如何避免重復編寫SELECT語句?”學生回答后總結:“存儲過程和存儲函數(shù)正是為解決‘代碼復用、簡化操作’而生,今天我們就動手掌握這一核心技能?!保ㄈ├碚撝v授(60分鐘)【知識點1】:存儲過程和存儲函數(shù)概述-定義:存儲在數(shù)據(jù)庫服務器中,經(jīng)編譯優(yōu)化的一組DM_SQL語句集合,用于完成特定功能。-核心特點(優(yōu)勢):模塊化:一次創(chuàng)建,多次調(diào)用,減少代碼冗余;高效性:預編譯執(zhí)行,比單次執(zhí)行SQL語句速度更快;安全性:可限制執(zhí)行權限,保護敏感數(shù)據(jù);減流量:網(wǎng)絡中僅傳輸調(diào)用指令,降低網(wǎng)絡負載。-應用場景:重復執(zhí)行的操作(如批量插入、數(shù)據(jù)統(tǒng)計、多表關聯(lián)查詢)、復雜業(yè)務邏輯實現(xiàn)(如成績計算、數(shù)據(jù)校驗)?!局R點2】:存儲過程的創(chuàng)建與調(diào)用-核心語法;CREATE[ORREPLACE]PROCEDURE[<模式名>.]<存儲過程名>[WITHENCRYPTION]([<參數(shù)名><參數(shù)模式><參數(shù)類型>[,…]])AS|IS<存儲過程體>;-關鍵參數(shù)說明:ORREPLACE:存在同名存儲過程時覆蓋;WITHENCRYPTION:加密存儲過程體,防止查看;參數(shù)模式:IN(輸入?yún)?shù),默認)、OUT(輸出參數(shù))、INOUT(輸入輸出參數(shù))。-創(chuàng)建存儲過程示例(1)創(chuàng)建無參存儲過程(例:查詢青島籍的學生信息)SETSCHEMAGRADEM;CREATEORREPLACEPROCEDUREproc_student_qd()ISBEGINSELECTsno,sname,classno,saddressFROMstudentWHEREsaddressLIKE'%青島%'ORDERBYsno;END;(2)創(chuàng)建帶輸入?yún)?shù)的存儲過程(例:查詢指定班級的學生信息)SETSCHEMAGRADEM;CREATEPROCEDUREproc_student_class(in_classnoVARCHAR(8))ISBEGINSELECTsno,sname,ssex,birthdayFROMstudentWHEREclassno=in_classno;END;(3)創(chuàng)建帶輸入+輸出參數(shù)的存儲過程(例:統(tǒng)計指定學生的選課門數(shù))SETSCHEMAGRADEM;CREATEPROCEDUREproc_student_course_count(in_snoCHAR(10),out_countOUTINT)ISBEGINSELECTCOUNT(*)INTOout_countFROMscWHEREsno=in_sno;END;-調(diào)用語法:(1)無參/帶輸入?yún)?shù)CALL存儲過程名([參數(shù)值]);(CALL可省略)(2)帶輸出參數(shù)需先定義變量接收結果,再調(diào)用DECLAREtotalINT;BEGINCALLproc_student_course_count('2020030101',total);PRINT'選課門數(shù):'||total;END;【易錯點提醒】參數(shù)模式與變量類型必須匹配(如OUT參數(shù)需定義對應數(shù)據(jù)類型變量接收);存儲過程體中SQL語句需以分號結尾,END后需加分號;調(diào)用帶參數(shù)的存儲過程時,參數(shù)順序需與定義一致?!局R點3】:存儲函數(shù)的創(chuàng)建與調(diào)用-核心語法:CREATE[ORREPLACE]FUNCTION[<模式名>.]<函數(shù)名>[WITHENCRYPTION]([<參數(shù)名><參數(shù)模式><參數(shù)類型>[,…]])RETURN<返回數(shù)據(jù)類型>AS|IS<函數(shù)體>;-關鍵區(qū)別:必須指定RETURN子句,參數(shù)模式默認IN,函數(shù)體中需有RETURN語句返回結果。-示例(查詢指定班級的輔導員姓名):CREATEORREPLACEFUNCTIONfunc_class_header(in_classnoVARCHAR(8))RETURNVARCHAR(8)ISv_headerVARCHAR(8);BEGINSELECTheaderINTOv_headerFROMclassWHEREclassno=in_classno;RETURNv_header;END;-調(diào)用語法:SELECT語句調(diào)用(返回結果):SELECT函數(shù)名([參數(shù)值]);例:SELECTfunc_class_header('20200301');【易錯點提醒】:函數(shù)必須有且僅有一個返回值,返回數(shù)據(jù)類型需與RETURN定義一致;SELECT語句調(diào)用的函數(shù)不能包含OUT/INOUT參數(shù);函數(shù)體中RETURN語句需放在邏輯結束前?!局R點4】存儲過程和存儲函數(shù)的刪除(四)實操練習(100分鐘)1.任務布置分組(每組3-4人),完成以下任務:任務1:根據(jù)實訓任務單,完成存儲過程和存儲函數(shù)編程任務。2.過程指導教師巡視各組,重點指導:參數(shù)定義、調(diào)用語法、錯誤排查;針對共性問題(如輸出參數(shù)傳遞、函數(shù)返回值類型),集中講解并演示修正方法;鼓勵小組內(nèi)成員互相分享思路,協(xié)作解決問題,記錄實訓過程中的關鍵問題及解決方法。3.成果展示選取2-3組展示實訓結果,點評優(yōu)點與不足,強調(diào)“代碼復用”的核心價值。(五)課堂小結與作業(yè)布置(10分鐘)1.課堂小結(5分鐘)回顧核心內(nèi)容:存儲過程和存儲函數(shù)的創(chuàng)建、調(diào)用、修改、刪除;關鍵區(qū)別:返回值、調(diào)用方式、參數(shù)類型、應用場景。職業(yè)素養(yǎng):模塊化編程是職場核心技能,遇到錯誤時需耐心排查,培養(yǎng)持之以恒的學習態(tài)度。2.作業(yè)布置(5分鐘)1)復習本節(jié)課知識點,完成教材習題中的題目。三、教學反思1.學生對帶輸出參數(shù)的存儲過程的參數(shù)傳遞和結果獲取是否掌握?是否需要補充專項練習?2.存儲過程與存儲函數(shù)的區(qū)別是否清晰?是否需要通過更多案例對比強化記憶?3.分組實訓中,是否所有學生都參與了操作?組長的協(xié)調(diào)作用是否有效?如何優(yōu)化分組分工機制?《達夢數(shù)據(jù)庫原理及應用》課程教案適用專業(yè):計算機應用技術、軟件技術、大數(shù)據(jù)技術等計算機類專業(yè)授課對象:高職一年級學生課程類型:專業(yè)基礎課先修課程:計算機基礎、程序設計基礎一、教案基本信息項目內(nèi)容章節(jié)任務7-3創(chuàng)建與使用觸發(fā)器、任務7-4掌握事務、鎖的概念與應用授課課時4課時(180分鐘)授課形式理論講授+案例分析+分組實操教學目標1.知識目標:-理解觸發(fā)器的定義、類型(表/事件/時間觸發(fā)器)及觸發(fā)機制;-掌握觸發(fā)器的創(chuàng)建、調(diào)用、查看、禁用/啟用及刪除語法;-理解事務的定義、ACID特性及應用場景;-掌握事務的提交、回滾、保存點設置方法;-了解鎖的基本概念、類型及并發(fā)問題(丟失更新、臟讀、不可重復讀)。2.能力目標:-能獨立創(chuàng)建表觸發(fā)器(插入/刪除/更新觸發(fā))維護數(shù)據(jù)一致性;-能編寫事務腳本實現(xiàn)原子性操作(如轉賬);-能排查觸發(fā)器、事務中的語法錯誤和邏輯漏洞;-能通過小組協(xié)作解決實際場景中的數(shù)據(jù)一致性和并發(fā)問題。3.素養(yǎng)目標:-培養(yǎng)數(shù)據(jù)一致性意識和嚴謹?shù)木幊趟季S;-提升問題解決能力和風險防控意識(如并發(fā)問題處理);-強化團隊協(xié)作與溝通能力,契合企業(yè)數(shù)據(jù)管理場景。教學重難點重點:-表觸發(fā)器(行級/語句級)的創(chuàng)建與觸發(fā)邏輯-事務的ACID特性及提交(COMMIT)、回滾(ROLLBACK)操作;-觸發(fā)器與事務在數(shù)據(jù)一致性維護中的應用。難點:-觸發(fā)器的觸發(fā)時機(BEFORE/AFTER/INSTEADOF)與行級/語句級區(qū)別;-事務隔離級別的選擇與并發(fā)問題解決;-觸發(fā)器、事務、鎖的協(xié)同應用(如轉賬場景中的數(shù)據(jù)安全)教學資源多媒體課件、DM數(shù)據(jù)庫、案例素材(STUDENT、COURSE、SC表等)、實訓任務單等。思政融入通過數(shù)據(jù)一致性維護教學,培養(yǎng)學生“精益求精”的工匠精神和職場責任意識;2.結合事務ACID特性和并發(fā)問題處理,引導學生樹立“風險防控”和“嚴謹細致”的工作態(tài)度;3.分組實訓中強調(diào)團隊協(xié)作,培養(yǎng)學生的溝通配合能力,契合企業(yè)數(shù)據(jù)管理場景。二、教學過程設計(一)課前導入(5分鐘)案例導入案例1(觸發(fā)器場景):“向STUDENT表添加一條學生記錄后,CLASS表中對應班級的人數(shù)字段(number)未自動更新,導致班級人數(shù)與實際不符,如何避免這種數(shù)據(jù)不一致?”案例2(事務場景):“王寧給李四轉賬1000元,王寧賬戶已扣款,但李四賬戶未到賬(因網(wǎng)絡故障),如何保證‘扣款’和‘到賬’操作要么全成、要么全???”引出課題:“今天我們學習觸發(fā)器和事務——觸發(fā)器能自動觸發(fā)關聯(lián)操作維護數(shù)據(jù)一致,事務能保證復雜操作的原子性,兩者結合是數(shù)據(jù)庫數(shù)據(jù)安全的核心保障?!保ǘ土暸f知(5分鐘)回顧上節(jié)課核心內(nèi)容:存儲過程的創(chuàng)建與調(diào)用、模塊化編程思維?;犹釂枺骸叭绻么鎯^程實現(xiàn)轉賬,如何避免‘扣款成功、到賬失敗’的情況?”學生回答后總結:“僅靠存儲過程無法解決,需要事務保證操作原子性,配合觸發(fā)器維護數(shù)據(jù)關聯(lián),今天我們就掌握這兩個核心技術?!保ㄈ├碚撝v授(60分鐘)【知識點1】:觸發(fā)器核心知識-定義與核心作用:觸發(fā)器是特殊的存儲過程,當預定義事件(INSERT/UPDATE/DELETE、DDL、系統(tǒng)事件)發(fā)生時自動激活執(zhí)行,無需手動調(diào)用。核心作用:維護數(shù)據(jù)一致性(如學生表與班級表人數(shù)關聯(lián))、實現(xiàn)復雜業(yè)務邏輯(如數(shù)據(jù)備份、權限校驗)。-觸發(fā)器分類(重點講表觸發(fā)器):表觸發(fā)器:基于表數(shù)據(jù)操作觸發(fā)(INSERT/UPDATE/DELETE),分3類:按觸發(fā)時機:BEFORE(操作前觸發(fā))、AFTER(操作后觸發(fā))、INSTEADOF(替代原操作,僅適用于視圖);按觸發(fā)級別:行級觸發(fā)器(FOREACHROW,每影響一行觸發(fā)一次)、語句級觸發(fā)器(默認,每個操作觸發(fā)一次)。事件觸發(fā)器:基于DDL或系統(tǒng)事件觸發(fā)(如登錄、創(chuàng)建表);時間觸發(fā)器:基于時間規(guī)律觸發(fā)(如每月28日備份)。-核心語法:CREATE[ORREPLACE]TRIGGER[<模式名>.]<觸發(fā)器名>[WITHENCRYPTION]<BEFORE|AFTER|INSTEADOF><觸發(fā)事件列表>ON<表名|視圖名>[FOREACHROW[WHEN<條件表達式>]]<觸發(fā)器體>;-關鍵參數(shù):觸發(fā)事件列表:INSERT/UPDATE[OF列名]/DELETE;:OLD與:NEW引用:行級觸發(fā)器中,:OLD表示操作前數(shù)據(jù),:NEW表示操作后數(shù)據(jù)(INSERT僅:NEW有效,DELETE僅:OLD有效)。-示例:(維護班級人數(shù)一致性)SETSCHEMAGRADEM;--向STUDENT表插入記錄后,自動更新CLASS表對應班級人數(shù)CREATEORREPLACETRIGGERtrig_student_insertAFTERINSERTONSTUDENTFOREACHROWBEGINUPDATECLASSSETnumber=number+1WHEREclassno=LEFT(:NEW.sno,8);--學號前8位為班級號END;【易錯點提醒】:行級觸發(fā)器需加FOREACHROW,否則默認語句級(僅觸發(fā)一次,不管影響多少行);:OLD/:NEW僅在表觸發(fā)器的行級觸發(fā)中可用,語句級觸發(fā)器不可用;觸發(fā)器體中SQL語句需以分號結尾,避免語法錯誤?!局R點2】:事務-定義與ACID特性(核心):事務是不可分割的數(shù)據(jù)庫操作序列,要么全執(zhí)行,要么全不執(zhí)行。ACID特性:原子性(Atomicity):操作“全成或全敗”,無部分執(zhí)行;一致性(Consistency):事務執(zhí)行后數(shù)據(jù)庫從一個一致狀態(tài)到另一個一致狀態(tài)(如轉賬前后總金額不變);隔離性(Isolation):并發(fā)事務互不干擾;持久性(Durability):事務提交后,數(shù)據(jù)修改永久有效。-事務控制語法:開始事務:第一個可執(zhí)行SQL語句隱含開始;提交事務:COMMIT[WORK](確認修改,永久生效);回滾事務:ROLLBACK[WORK](撤銷未提交修改,恢復初始狀態(tài));保存點:SAVEPOINT保存點名(設置中間節(jié)點,可回滾到指定節(jié)點)、ROLLBACKTOSAVEPOINT保存點名。-示例(轉賬事務):SETSCHEMABANKINFO;BEGIN--王寧賬戶扣款1000UPDATEBANKSETcurrentmoney=currentmoney-1000WHEREcustomername='王寧';SAVEPOINTsp1;--設置保存點--李四賬戶到賬1000UPDATEBANKSETcurrentmoney=currentmoney+1000WHEREcustomername='李四';--驗證王寧賬戶余額是否≥1,否則回滾DECLAREv_moneyDECIMAL(13,2);SELECTcurrentmoneyINTOv_moneyFROMBANKWHEREcustomername='王寧';IFv_money<1THENROLLBACKTOsp1;--回滾到保存點

溫馨提示

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

最新文檔

評論

0/150

提交評論