版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第3章面向?qū)ο螅ㄉ希╉?xiàng)目名稱項(xiàng)目5“天意書屋”數(shù)據(jù)庫(kù)中程序的設(shè)計(jì)計(jì)劃學(xué)時(shí)18學(xué)時(shí)內(nèi)容導(dǎo)覽在前面項(xiàng)目的學(xué)習(xí)中,我們已經(jīng)學(xué)會(huì)了數(shù)據(jù)庫(kù)中視圖和索引的使用。有時(shí)候需要執(zhí)行一段SQL語(yǔ)句組成的程序代碼。其中,存儲(chǔ)過(guò)程是將一組SQL語(yǔ)句代碼當(dāng)作一個(gè)整體來(lái)調(diào)用執(zhí)行。觸發(fā)器是由事件觸發(fā),當(dāng)表中出現(xiàn)特定事件時(shí),就會(huì)激發(fā)該對(duì)象。事務(wù)是一組有著內(nèi)在邏輯聯(lián)系的SQL語(yǔ)句,它們要么都執(zhí)行成功,要么什么都不做。本項(xiàng)目將針對(duì)存儲(chǔ)過(guò)程、觸發(fā)器和事務(wù)進(jìn)行詳細(xì)講解。教學(xué)目標(biāo)1.了解存儲(chǔ)過(guò)程的概念、優(yōu)點(diǎn)。2.掌握存儲(chǔ)過(guò)程的創(chuàng)建、調(diào)用、維護(hù)。3.掌握條件分支語(yǔ)句、循環(huán)語(yǔ)句、游標(biāo)。4.了解觸發(fā)器的概念,掌握觸發(fā)器的創(chuàng)建、維護(hù)。5.了解事務(wù)的概念,掌握事務(wù)的基本操作。教學(xué)重點(diǎn)1.存儲(chǔ)過(guò)程的創(chuàng)建、調(diào)用、維護(hù)。2.觸發(fā)器的創(chuàng)建、維護(hù)。3.事務(wù)的基本操作。教學(xué)難點(diǎn)1.存儲(chǔ)過(guò)程的創(chuàng)建、調(diào)用。2.觸發(fā)器的創(chuàng)建。3.事務(wù)的基本操作。教學(xué)過(guò)程第1-2學(xué)時(shí)(創(chuàng)建存儲(chǔ)過(guò)程)知識(shí)目標(biāo):了解存儲(chǔ)過(guò)程的概念和優(yōu)點(diǎn),掌握創(chuàng)建、調(diào)用存儲(chǔ)過(guò)程的方法。能力目標(biāo):具備創(chuàng)建、調(diào)用存儲(chǔ)過(guò)程的能力。素質(zhì)目標(biāo):嚴(yán)格要求自己,不斷進(jìn)步。一、溫故知新,情境導(dǎo)入1.回顧項(xiàng)目四中創(chuàng)建視圖和索引的相關(guān)知識(shí),引出本節(jié)內(nèi)容:創(chuàng)建存儲(chǔ)過(guò)程。2.動(dòng)畫引入存儲(chǔ)過(guò)程的概念,了解學(xué)習(xí)內(nèi)容。二、知識(shí)講解,實(shí)操演示1.存儲(chǔ)過(guò)程概述存儲(chǔ)過(guò)程是一組經(jīng)過(guò)編譯并保存在數(shù)據(jù)庫(kù)中的SQL語(yǔ)句集,可以隨時(shí)被調(diào)用。使用存儲(chǔ)過(guò)程具有如下5個(gè)優(yōu)點(diǎn):(1)執(zhí)行速度快:存儲(chǔ)過(guò)程是在MySQL服務(wù)器中存儲(chǔ)和執(zhí)行的,可以減少客戶端和服務(wù)器端的數(shù)據(jù)傳輸。(2)系統(tǒng)性能高:存儲(chǔ)過(guò)程執(zhí)行一次后,就駐留在高速緩沖存儲(chǔ)器。在以后的操作中,只需從高速緩沖存儲(chǔ)器中調(diào)用已編譯好的存儲(chǔ)過(guò)程,提高了系統(tǒng)性能。(3)允許標(biāo)準(zhǔn)組件式編程:存儲(chǔ)過(guò)程在被創(chuàng)建后,可以在程序中多次調(diào)用,有效提高了SQL語(yǔ)句的重用性、共享性和可移植性。(4)靈活性強(qiáng):存儲(chǔ)過(guò)程可以使用流程控制語(yǔ)句,有很強(qiáng)的靈活性,完成復(fù)雜的邏輯。(5)安全:系統(tǒng)管理員通過(guò)對(duì)某一存儲(chǔ)過(guò)程的權(quán)限進(jìn)行限制,從而限制相應(yīng)數(shù)據(jù)的訪問(wèn)權(quán)限,避免非授權(quán)用戶對(duì)數(shù)據(jù)的訪問(wèn),保證數(shù)據(jù)安全。2.存儲(chǔ)過(guò)程的創(chuàng)建及調(diào)用(1)創(chuàng)建存儲(chǔ)過(guò)程語(yǔ)法格式:CREATEPROCEDURE存儲(chǔ)過(guò)程名稱([參數(shù)列表[,...]])SQL語(yǔ)句集;CREATEPROCEDURE:表示創(chuàng)建存儲(chǔ)過(guò)程。存儲(chǔ)過(guò)程名稱:必須符合標(biāo)識(shí)符命名規(guī)則,且對(duì)于數(shù)據(jù)庫(kù)及其所有者必須唯一的。參數(shù)列表:是可選項(xiàng),不省略為有參數(shù)存儲(chǔ)過(guò)程,省略為無(wú)參數(shù)存儲(chǔ)過(guò)程。SQL語(yǔ)句集:使用BEGIN表示開(kāi)始,使用END表示結(jié)束。(2)調(diào)用存儲(chǔ)過(guò)程MySQL中使用CALL語(yǔ)句來(lái)調(diào)用存儲(chǔ)過(guò)程。調(diào)用存儲(chǔ)過(guò)程后,數(shù)據(jù)庫(kù)系統(tǒng)將執(zhí)行存儲(chǔ)過(guò)程中的語(yǔ)句,執(zhí)行結(jié)果返回給輸出值。語(yǔ)法格式:CALL存儲(chǔ)過(guò)程名稱([參數(shù)列表[,...]]);CALL:關(guān)鍵字,表示調(diào)用存儲(chǔ)過(guò)程,后面加要調(diào)用的存儲(chǔ)過(guò)程名稱。參數(shù)列表:可選項(xiàng),調(diào)用帶有參數(shù)的存儲(chǔ)過(guò)程,給出參數(shù)的具體的值。(3)有參數(shù)存儲(chǔ)過(guò)程在實(shí)際應(yīng)用中,為了滿足不同查詢的需要,通常需要為存儲(chǔ)過(guò)程指定參數(shù),來(lái)實(shí)現(xiàn)通用的數(shù)據(jù)訪問(wèn)模塊。存儲(chǔ)過(guò)程可以指定一個(gè)或多個(gè)參數(shù),參數(shù)的聲明由參數(shù)方向、參數(shù)名稱和參數(shù)類型3部分構(gòu)成,一般至少提供參數(shù)名稱和參數(shù)類型。語(yǔ)句格式:CREATEPROCEDURE存儲(chǔ)過(guò)程名稱([IN|OUT|INOUT]參數(shù)名稱參數(shù)類型)SQL語(yǔ)句集;IN:表示輸入?yún)?shù),可把外界的數(shù)據(jù)傳遞到存儲(chǔ)過(guò)程當(dāng)中。OUT:表示輸出參數(shù),可把存儲(chǔ)過(guò)程的運(yùn)算結(jié)果傳遞到外界。INOUT:表示輸入輸出參數(shù),既可以把外界的數(shù)據(jù)傳遞給存儲(chǔ)過(guò)程當(dāng)中,又可以把存儲(chǔ)過(guò)程的運(yùn)算結(jié)果傳遞到外界。在沒(méi)有指定參數(shù)方向的情況下,系統(tǒng)默認(rèn)是輸入?yún)?shù)IN。三、任務(wù)評(píng)測(cè),匯報(bào)展示(1)發(fā)布課堂在線測(cè)試。(2)學(xué)生分小組完成項(xiàng)目需求,并進(jìn)行匯報(bào)展示。第3-4學(xué)時(shí)(維護(hù)存儲(chǔ)過(guò)程)知識(shí)目標(biāo):掌握維護(hù)存儲(chǔ)過(guò)程的方法,掌握變量的使用方法。能力目標(biāo):具備維護(hù)存儲(chǔ)過(guò)程的能力。素質(zhì)目標(biāo):腳踏實(shí)地,嚴(yán)格要求自己。一、溫故知新,情境導(dǎo)入1.回顧上節(jié)課學(xué)習(xí)的創(chuàng)建存儲(chǔ)過(guò)程,引出本節(jié)的內(nèi)容:維護(hù)存儲(chǔ)過(guò)程。2.動(dòng)畫引入維護(hù)存儲(chǔ)過(guò)程,明確學(xué)習(xí)目標(biāo)。二、知識(shí)講解,實(shí)操演示1.查看存儲(chǔ)過(guò)程創(chuàng)建完存儲(chǔ)過(guò)程后,MySQL存儲(chǔ)了其狀態(tài)信息和定義語(yǔ)句,用戶可以分別使用SHOWSTATUS和SHOWCREATE語(yǔ)句進(jìn)行查看。(1)查看存儲(chǔ)過(guò)程的狀態(tài)語(yǔ)法格式:SHOWPROCEDURESTATUS[LIKE'存儲(chǔ)過(guò)程名稱'];(2)查看存儲(chǔ)過(guò)程的定義語(yǔ)法格式:SHOWCREATEPROCEDURE存儲(chǔ)過(guò)程名稱;2.修改存儲(chǔ)過(guò)程語(yǔ)法格式:ALTERPROCEDURE存儲(chǔ)過(guò)程名稱[MODIFIESSQLDATA|SQLSECURITY{DEFINER|INVOKER}];ALTERPROCEDURE:關(guān)鍵字,表示修改存儲(chǔ)過(guò)程。MODIFIESSQLDATA:表示子程序中包含寫數(shù)據(jù)的語(yǔ)句。DEFINER:表示只有定義者自己才能執(zhí)行。INVOKER:表示調(diào)用者可以執(zhí)行。3.刪除存儲(chǔ)過(guò)程語(yǔ)法格式:DROPPROCEDURE[IFEXISTS]存儲(chǔ)過(guò)程名稱;4.變量(1)變量的分類?用戶變量(User-DefinedVariables):帶有前綴@,只能被定義它的用戶使用,作用于當(dāng)前整個(gè)連接,當(dāng)前連接斷開(kāi)后,所定義的用戶變量會(huì)被全部釋放。用戶變量不用提前定義就可以直接使用。?局部變量(LocalVariables):沒(méi)有前綴,一般用于SQL語(yǔ)句塊的BEGIN...END中。其作用范圍僅限于該語(yǔ)句塊,在語(yǔ)句塊執(zhí)行完畢后,局部變量就會(huì)被釋放。局部變量使用前需要先通過(guò)DECLARE聲明,如沒(méi)有聲明,則初始值為NULL。?系統(tǒng)變量(ServerSystemVariables):帶有前綴@@,MySQL有許多已經(jīng)設(shè)置默認(rèn)值的系統(tǒng)變量。系統(tǒng)變量包含全局(GLOBAL)變量和會(huì)話(SESSION)變量。全局變量會(huì)影響整個(gè)服務(wù)器,而會(huì)話變量只對(duì)當(dāng)前會(huì)話(當(dāng)前連接)有效。(2)局部變量的定義在存儲(chǔ)過(guò)程中使用DECLARE語(yǔ)句定義局部變量,作用范圍是BEGIN...END語(yǔ)句塊。語(yǔ)法格式:DECLARE變量名數(shù)據(jù)類型[DEFAULT默認(rèn)值];(3)變量賦值?變量定義之后,可以使用SET關(guān)鍵字為變量賦值。語(yǔ)法格式:SET變量名=變量值;?使用SELECT...INTO...查詢語(yǔ)句將查詢結(jié)果賦值給變量。語(yǔ)法格式:SELECT列名INTO變量名FROM表名;三、任務(wù)評(píng)測(cè),匯報(bào)展示(1)發(fā)布課堂在線測(cè)試。(2)學(xué)生分小組完成項(xiàng)目需求,并進(jìn)行匯報(bào)展示。第5-6學(xué)時(shí)(條件分支語(yǔ)句)知識(shí)目標(biāo):掌握條件分支語(yǔ)句的使用方法。能力目標(biāo):具備條件分支語(yǔ)句的應(yīng)用能力。素質(zhì)目標(biāo):遵從內(nèi)心,合理選擇。一、溫故知新,情境導(dǎo)入1.回顧上節(jié)課學(xué)習(xí)的維護(hù)存儲(chǔ)過(guò)程,引出本節(jié)的內(nèi)容:條件分支語(yǔ)句。2.動(dòng)畫引入IF語(yǔ)句,明確學(xué)習(xí)目標(biāo)。二、知識(shí)講解,實(shí)操演示1.條件分支語(yǔ)句條件分支語(yǔ)句是通過(guò)對(duì)特定條件的判斷,選擇一個(gè)分支的語(yǔ)句執(zhí)行。在MySQL中可以實(shí)現(xiàn)條件分支的語(yǔ)句有IF語(yǔ)句、IFNULL語(yǔ)句、IF...ELSE語(yǔ)句和CASE語(yǔ)句共4種。(1)IF語(yǔ)句語(yǔ)法格式:IF(條件表達(dá)式,結(jié)果1,結(jié)果2);當(dāng)“條件表達(dá)式”的值為TRUE時(shí),返回“結(jié)果1”,否則返回“結(jié)果2”。(2)IFNULL語(yǔ)句語(yǔ)法格式:IFNULL(結(jié)果1,結(jié)果2);若結(jié)果1的值不為空,則返回結(jié)果1,否則返回結(jié)果2。(3)IF...ELSE語(yǔ)句語(yǔ)法格式:IF條件表達(dá)式1THEN語(yǔ)句塊1;ELSE語(yǔ)句塊2;ENDIF;當(dāng)“條件表達(dá)式1”的值為TRUE時(shí),“語(yǔ)句塊1”將被執(zhí)行。當(dāng)“條件表達(dá)式1”的值都為FALSE,則執(zhí)行“語(yǔ)句塊2”。每個(gè)語(yǔ)句塊都可以包含一個(gè)或多個(gè)語(yǔ)句。(4)CASE語(yǔ)句CASE語(yǔ)句在MySQL中用于實(shí)現(xiàn)分支處理,能夠根據(jù)表達(dá)式的不同取值,轉(zhuǎn)向不同的計(jì)算或處理,類似高級(jí)程序語(yǔ)言中的SWITCH...CASE語(yǔ)句。當(dāng)判斷條件的范圍較大時(shí),使用CASE會(huì)使得程序的結(jié)構(gòu)更為簡(jiǎn)潔。適用于需要根據(jù)同一個(gè)表達(dá)式的不同取值來(lái)決定將執(zhí)行哪一個(gè)分支的場(chǎng)合。CASE語(yǔ)句具有簡(jiǎn)單結(jié)構(gòu)和搜索結(jié)構(gòu)兩種語(yǔ)法。?簡(jiǎn)單CASE結(jié)構(gòu)簡(jiǎn)單CASE結(jié)構(gòu)將表達(dá)式與一組簡(jiǎn)單表達(dá)式進(jìn)行比較以確定結(jié)果。語(yǔ)法格式:CASE表達(dá)式WHEN數(shù)值1THEN語(yǔ)句1;[WHEN數(shù)值2THEN語(yǔ)句2;][ELSE語(yǔ)句n+1;]ENDCASE;“表達(dá)式”的值與WHEN子句后的“數(shù)值”比較,找到完全相同的項(xiàng)時(shí),則執(zhí)行對(duì)應(yīng)的“語(yǔ)句”,若未找到匹配項(xiàng),則執(zhí)行ELSE后的“語(yǔ)句”。?CASE搜索結(jié)構(gòu)CASE搜索結(jié)構(gòu)用于搜索條件表達(dá)式以確定相應(yīng)的操作。語(yǔ)法格式:CASEWHEN條件表達(dá)式1THEN語(yǔ)句1;[WHEN條件表達(dá)式2THEN語(yǔ)句2;][ELSE語(yǔ)句n+1;]ENDCASE;該結(jié)構(gòu)判斷WHEN子句后的“條件表達(dá)式”的值是否為TRUE,若為TRUE,則執(zhí)行對(duì)應(yīng)的“語(yǔ)句”。若所有的“條件表達(dá)式”的值均為FALSE,則執(zhí)行ELSE后的“語(yǔ)句”。若無(wú)ELSE子句,則返回NULL。三、任務(wù)評(píng)測(cè),匯報(bào)展示(1)發(fā)布課堂在線測(cè)試。(2)學(xué)生分小組完成項(xiàng)目需求,并進(jìn)行匯報(bào)展示。第7-8學(xué)時(shí)(循環(huán)語(yǔ)句)知識(shí)目標(biāo):掌握循環(huán)語(yǔ)句的使用方法。能力目標(biāo):具備循環(huán)語(yǔ)句的應(yīng)用能力。素質(zhì)目標(biāo):堅(jiān)持不懈。一、溫故知新,情境導(dǎo)入1.回顧上節(jié)課學(xué)習(xí)的條件分支語(yǔ)句,引出本節(jié)的內(nèi)容:循環(huán)語(yǔ)句。2.動(dòng)畫引入循環(huán)語(yǔ)句,明確學(xué)習(xí)目標(biāo)。二、知識(shí)講解,實(shí)操演示1.循環(huán)語(yǔ)句除了條件語(yǔ)句之外,在MySQL中還經(jīng)常會(huì)用到循環(huán)語(yǔ)句,循環(huán)語(yǔ)句可以在存儲(chǔ)過(guò)程或者觸發(fā)器等內(nèi)容中使用。每一種循環(huán)都是重復(fù)執(zhí)行的一個(gè)語(yǔ)句塊,該語(yǔ)句塊可包括一條或多條語(yǔ)句。循環(huán)語(yǔ)句在其他程序設(shè)計(jì)語(yǔ)言中有多種形式,MySQL中只有WHILE語(yǔ)句、LOOP語(yǔ)句和REPEAT語(yǔ)句三種。(1)WHILE語(yǔ)句WHILE循環(huán)語(yǔ)句以WHILE關(guān)鍵字開(kāi)始,以ENDWHILE語(yǔ)句結(jié)束。語(yǔ)法格式:[開(kāi)始標(biāo)簽:]WHILE條件表達(dá)式DO語(yǔ)句塊;ENDWHILE[結(jié)束標(biāo)簽];WHILE語(yǔ)句是先判斷“條件表達(dá)式”的值是否為TRUE,當(dāng)“條件表達(dá)式”的值為TRUE時(shí),語(yǔ)句塊被重復(fù)執(zhí)行,直至“條件表達(dá)式”的值為FALSE,才會(huì)結(jié)束循環(huán)。只要“開(kāi)始標(biāo)簽”語(yǔ)句存在,則“結(jié)束標(biāo)簽”語(yǔ)句才能被使用;若兩者都存在,它們的名稱必須相同。(2)LOOP語(yǔ)句LOOP語(yǔ)句可以使某些特定的語(yǔ)句重復(fù)執(zhí)行,實(shí)現(xiàn)一個(gè)簡(jiǎn)單的循環(huán)。但是LOOP本身沒(méi)有停止循環(huán)的語(yǔ)句,必須和LEAVE語(yǔ)句結(jié)合使用來(lái)停止循環(huán)。語(yǔ)法格式:[開(kāi)始標(biāo)簽:]LOOP語(yǔ)句塊;ENDLOOP[結(jié)束標(biāo)簽];“開(kāi)始標(biāo)簽”和“結(jié)束標(biāo)簽”分別表示循環(huán)開(kāi)始和結(jié)束的標(biāo)識(shí),這兩個(gè)標(biāo)識(shí)必須相同,可以省略?!罢Z(yǔ)句塊”表示需要循環(huán)執(zhí)行的語(yǔ)句。(3)LEAVE語(yǔ)句語(yǔ)法格式:LEAVE標(biāo)簽名;LEAVE語(yǔ)句主要用于跳出循環(huán)控制,與高級(jí)語(yǔ)言中的BREAK語(yǔ)句相似?!皹?biāo)簽名”用于標(biāo)識(shí)跳出循環(huán)的標(biāo)識(shí)符。(4)ITERATE語(yǔ)句語(yǔ)法格式:ITERATE標(biāo)簽名;ITERATE語(yǔ)句只跳出當(dāng)次循環(huán),然后直接進(jìn)入下一次循環(huán),與高級(jí)語(yǔ)言中的CONTINUE語(yǔ)句相似。“標(biāo)簽名”表示用來(lái)跳出的本次循環(huán)的標(biāo)識(shí)符。三、任務(wù)評(píng)測(cè),匯報(bào)展示(1)發(fā)布課堂在線測(cè)試。(2)學(xué)生分小組完成項(xiàng)目需求,并進(jìn)行匯報(bào)展示。第9-10學(xué)時(shí)(體會(huì)游標(biāo))知識(shí)目標(biāo):掌握游標(biāo)的使用方法。能力目標(biāo):具備游標(biāo)的應(yīng)用能力。素質(zhì)目標(biāo):做事有始有終。一、溫故知新,情境導(dǎo)入1.回顧上節(jié)課學(xué)習(xí)的循環(huán)語(yǔ)句,引出本節(jié)的內(nèi)容:游標(biāo)。2.動(dòng)畫引入游標(biāo)的概念,明確學(xué)習(xí)目標(biāo)。二、知識(shí)講解,實(shí)操演示1.游標(biāo)的使用SELECT語(yǔ)句實(shí)現(xiàn)對(duì)數(shù)據(jù)集的查詢操作,若需要對(duì)單行記錄進(jìn)行處理,就需要使用游標(biāo)(CURSOR)對(duì)象進(jìn)行逐條處理。在MySQL中,游標(biāo)是一種數(shù)據(jù)訪問(wèn)機(jī)制,允許用戶訪問(wèn)數(shù)據(jù)集中的某一行,類似C語(yǔ)言中指針的功能。游標(biāo)的使用包括聲明(DECLARE)游標(biāo)、打開(kāi)(OPEN)游標(biāo)、使用(FETCH)游標(biāo)和關(guān)閉(CLOSE)游標(biāo)。(1)聲明游標(biāo)游標(biāo)在使用之前,必須進(jìn)行聲明。MySQL中使用DECLARE關(guān)鍵字來(lái)聲明一個(gè)游標(biāo)。語(yǔ)法格式:DECLARE游標(biāo)名稱CURSORFORSELECT語(yǔ)句;DECLARE:關(guān)鍵字,表示聲明游標(biāo),后面加游標(biāo)名稱。CURSOR:關(guān)鍵字,表示游標(biāo)。FOR:關(guān)鍵字,后接查詢語(yǔ)句。(2)打開(kāi)游標(biāo)語(yǔ)法格式:OPEN游標(biāo)名稱;(3)使用游標(biāo)游標(biāo)打開(kāi)后,使用FETCH關(guān)鍵字來(lái)獲取游標(biāo)當(dāng)前指針的記錄,并將記錄值傳給指定變量列表。語(yǔ)法格式:FETCH游標(biāo)名稱INTO變量1[,變量2,];(4)關(guān)閉游標(biāo)語(yǔ)法格式:CLOSE游標(biāo)名稱;三、任務(wù)評(píng)測(cè),匯報(bào)展示(1)發(fā)布課堂在線測(cè)試。(2)學(xué)生分小組完成項(xiàng)目需求,并進(jìn)行匯報(bào)展示。第11-12學(xué)時(shí)(創(chuàng)建AFTER觸發(fā)器)知識(shí)目標(biāo):了解觸發(fā)器的概念,掌握創(chuàng)建AFTER觸發(fā)器的方法,掌握查看觸發(fā)器的方法。能力目標(biāo):具備創(chuàng)建AFTER觸發(fā)器、查看觸發(fā)器的能力。素質(zhì)目標(biāo):遵守規(guī)則。一、溫故知新,情境導(dǎo)入1.回顧上節(jié)課學(xué)習(xí)的游標(biāo),引出本節(jié)的內(nèi)容:創(chuàng)建AFTER觸發(fā)器。2.動(dòng)畫引入觸發(fā)器的概念,明確學(xué)習(xí)目標(biāo)。二、知識(shí)講解,實(shí)操演示1.觸發(fā)器的概念觸發(fā)器是一種特殊的存儲(chǔ)過(guò)程,可以用來(lái)對(duì)數(shù)據(jù)表實(shí)施復(fù)雜的完整性約束,保持?jǐn)?shù)據(jù)的一致性。當(dāng)觸發(fā)器所保護(hù)的數(shù)據(jù)發(fā)生改變時(shí),觸發(fā)器會(huì)自動(dòng)被激活,并執(zhí)行觸發(fā)器中所定義的相關(guān)操作,以保證關(guān)聯(lián)數(shù)據(jù)的完整性。一般激活觸發(fā)器的事件包括INSERT、UPDATE和DELTE事件。在MySQL中,定義在觸發(fā)器中的SQL語(yǔ)句可以關(guān)聯(lián)表中的任意列,但不能直接使用列的名稱標(biāo)識(shí),那會(huì)使系統(tǒng)混淆,所以MySQL提供了兩個(gè)邏輯表NEW和OLD。NEW和OLD的表結(jié)構(gòu)與觸發(fā)器所在數(shù)據(jù)表的結(jié)構(gòu)完全一致,當(dāng)觸發(fā)器的執(zhí)行完成之后,這兩個(gè)表也會(huì)被自動(dòng)刪除。NEW表用來(lái)存放更新后的記錄。對(duì)于INSERT語(yǔ)句,NEW表中存放的是要插入的記錄;對(duì)于UPDATE語(yǔ)句,該表中存放的是要更新的記錄。OLD表用來(lái)存放更新前的記錄。對(duì)于UPDATE語(yǔ)句,OLD表中存放的是更新前的記錄(更新完后即被刪除);對(duì)于DELETE語(yǔ)句,該表中存放的是被刪除的記錄。2.創(chuàng)建AFTER觸發(fā)器定義AFTER觸發(fā)器是指觸發(fā)器監(jiān)視的觸發(fā)事件執(zhí)行之后,再激活觸發(fā)器,激活后所執(zhí)行的操作無(wú)法影響觸發(fā)器所監(jiān)視的事件。AFTER觸發(fā)器也可以根據(jù)所監(jiān)視的事件分為三種,分別是INSERT型觸發(fā)器、UPDATE型觸發(fā)器和DELETE型觸發(fā)器。3.創(chuàng)建AFTER觸發(fā)器方法語(yǔ)法格式:CREATETRIGGER觸發(fā)器名稱AFTER觸發(fā)事件ON表名FOREACHROW觸發(fā)器激活后執(zhí)行的SQL語(yǔ)句;CREATETRIGGER:表示創(chuàng)建觸發(fā)器。觸發(fā)事件可以是INSERT、UPDATE和DELETE。FOREACHROW表示數(shù)據(jù)表中任意一條記錄滿足觸發(fā)事件都會(huì)激活觸發(fā)器。4.查看觸發(fā)器語(yǔ)法格式:SHOWTRIGGERS;三、任務(wù)評(píng)測(cè),匯報(bào)展示(1)發(fā)布課堂在線測(cè)試。(2)學(xué)生分小組完成項(xiàng)目需求,并進(jìn)行匯報(bào)展示。第13-14學(xué)時(shí)(創(chuàng)建BEFORE觸發(fā)器)知識(shí)目標(biāo):掌握創(chuàng)建BEFORE觸發(fā)器的方法,掌握刪除觸發(fā)器的方法。能力目標(biāo):具備創(chuàng)建BEFORE觸發(fā)器、刪除觸發(fā)器的能力。素質(zhì)目標(biāo):遵守規(guī)則。一、溫故知新,情境導(dǎo)入1.回顧上節(jié)課學(xué)習(xí)的創(chuàng)建AFTER觸發(fā)器,引出本節(jié)的內(nèi)容:創(chuàng)建BEFORE觸發(fā)器。2.動(dòng)畫引入創(chuàng)建BEFORE觸發(fā)器,明確學(xué)習(xí)目標(biāo)。二、知識(shí)講解,實(shí)操演示1.創(chuàng)建BEFORE觸發(fā)器定義BEFORE觸發(fā)器是指觸發(fā)器在所監(jiān)視的觸發(fā)事件執(zhí)行之前激活,激活后執(zhí)行的操作先于監(jiān)視的事件,這樣就有機(jī)會(huì)進(jìn)行一些判斷或修改即將發(fā)生的操作。BEFORE觸發(fā)器可以根據(jù)所監(jiān)視的事件分為三種,分別是INSERT型觸發(fā)器、UPDATE型觸發(fā)器和DELETE型觸發(fā)器。2.創(chuàng)建BEFORE觸發(fā)器方法語(yǔ)法格式:CREATETRIGGER觸發(fā)器名稱BEFORE觸發(fā)事件ON表名FOREACHROW觸發(fā)器激活后執(zhí)行的SQL語(yǔ)句;CREATETRIGGER:表示創(chuàng)建觸發(fā)器。觸發(fā)事件可以是INSERT、UPDATE和DELETE。FOREACHROW表示數(shù)據(jù)表中任意一條記錄滿足觸發(fā)事件都會(huì)激活觸發(fā)器。3.刪除觸發(fā)器語(yǔ)法格式:DROPTRIGGER[數(shù)據(jù)庫(kù)名].觸發(fā)器名稱;三、任務(wù)評(píng)測(cè),匯報(bào)展示(1)發(fā)布課堂在線測(cè)試。(2)學(xué)生分小組完成項(xiàng)目需求,并進(jìn)行匯報(bào)展示。第15-16學(xué)時(shí)(處理事務(wù))知識(shí)目標(biāo):了解事務(wù)的概述,掌握事務(wù)的基本操作。能力目標(biāo):具備處理事務(wù)的能力。素質(zhì)目標(biāo):言必行,行必果。一、溫故知新,情境導(dǎo)入1.回顧上節(jié)課學(xué)習(xí)的創(chuàng)建BEFORE觸發(fā)器,引出本節(jié)的內(nèi)容:處理事務(wù)。2.動(dòng)畫引入事務(wù)的概念,明確學(xué)習(xí)目標(biāo)。二、知識(shí)講解,實(shí)操演示1.事務(wù)的概述事務(wù)是一組有著內(nèi)在邏輯聯(lián)系的SQL語(yǔ)句。支持事務(wù)的數(shù)據(jù)庫(kù)系統(tǒng)要么正確執(zhí)行事務(wù)里的所有SQL語(yǔ)句,要么把它們當(dāng)做整體全部放棄,也就是說(shuō)事務(wù)永遠(yuǎn)不會(huì)只完成一部分。事務(wù)可以由一條非常簡(jiǎn)單的SQL語(yǔ)句組成,也可以由一組復(fù)雜的SQL語(yǔ)句組成。在事務(wù)中的操作,要么都執(zhí)行,要么都不執(zhí)行,這就是事務(wù)的目的,也是事務(wù)的重要特征之一。使用事務(wù)可以大大提高數(shù)據(jù)安全性和執(zhí)行效率。事務(wù)有著極其嚴(yán)格的定義,它必須同時(shí)滿足4個(gè)特征(俗稱為ACID標(biāo)準(zhǔn)):原子性(Atomicity)一致性(Consistency)隔離性(Isolation)持久性(Durability)2.事務(wù)的基本操作在默認(rèn)情況下,用戶執(zhí)行的每一條SQL語(yǔ)句都會(huì)被當(dāng)成單獨(dú)的事務(wù)自動(dòng)提交。如果要將一組SQL語(yǔ)句作為一個(gè)事務(wù),則需要先顯式地開(kāi)啟一個(gè)事務(wù)。語(yǔ)法格式:第1步:STARTTRANSACTION;第2步:SQL語(yǔ)句集;第3步:COMMIT/ROLLBACK;STARTTRANSACTION:表示開(kāi)始事務(wù)。COMMIT:關(guān)鍵字,表示提交事務(wù)。ROLLBACK:關(guān)鍵字,表示回滾事務(wù)。三、任務(wù)評(píng)測(cè),匯報(bào)展示(1)發(fā)布課堂在線測(cè)試。(2)學(xué)生分小組完成項(xiàng)目需求,并進(jìn)行匯報(bào)展示。第17-18學(xué)時(shí)(項(xiàng)目實(shí)訓(xùn))一、需求分析,布置任務(wù)1.教師先進(jìn)行需求分析,分析學(xué)生選課系統(tǒng)項(xiàng)目的視圖和索引相關(guān)需求。2.教師發(fā)布任務(wù)。二、團(tuán)隊(duì)合作,任務(wù)執(zhí)行1.學(xué)生分為6組,分工合作。2.項(xiàng)目執(zhí)行過(guò)程中,通過(guò)團(tuán)隊(duì)合作解決問(wèn)題,最終完成項(xiàng)目。三、匯報(bào)展示,考核評(píng)價(jià)1.各小組通過(guò)抽簽方式?jīng)Q定匯報(bào)順序。2.小組匯報(bào)結(jié)束后,教師和其他同學(xué)可以為該小組成員打分,系統(tǒng)自動(dòng)生成各成員的成績(jī)。教學(xué)反思《MySQL數(shù)據(jù)庫(kù)項(xiàng)目實(shí)戰(zhàn)》教案課程名稱:XXXXXX授課年級(jí):XXXXX授課學(xué)期:XXXXX教師姓名:XXXX項(xiàng)目名稱項(xiàng)目6“天意書屋”數(shù)據(jù)庫(kù)的用戶權(quán)限和安全計(jì)劃學(xué)時(shí)10學(xué)時(shí)內(nèi)容導(dǎo)覽在前面的項(xiàng)目中,都是通過(guò)root(超級(jí)用戶)登錄數(shù)據(jù)庫(kù)進(jìn)行相關(guān)的操作。而在實(shí)際應(yīng)用中,若不能保證足夠的安全性,這種操作很可能會(huì)造成數(shù)據(jù)的丟失、泄露甚至被破壞后造成無(wú)法挽回的損失。因此,在正常的工作環(huán)境中,數(shù)據(jù)庫(kù)的管理員會(huì)對(duì)需要操作數(shù)據(jù)庫(kù)的人員分配用戶名、密碼以及可操作的權(quán)限范圍,讓其僅能在自己權(quán)限范圍內(nèi)操作。數(shù)據(jù)庫(kù)也會(huì)遭遇系統(tǒng)管理員在維護(hù)數(shù)據(jù)表時(shí)誤刪部分重要數(shù)據(jù)的情況,如果不能及時(shí)補(bǔ)救會(huì)造成極大損失。為了挽回?fù)p失,數(shù)據(jù)庫(kù)管理人員需要對(duì)數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)備份,在出現(xiàn)操作事故后可以將之前的數(shù)據(jù)還原。本章將對(duì)針對(duì)MySQL中的用戶權(quán)限和數(shù)據(jù)庫(kù)備份還原進(jìn)行詳細(xì)講解。教學(xué)目標(biāo)1.掌握查看用戶、創(chuàng)建用戶、修改用戶、重命名用戶、刪除用戶的兩種方式。2.掌握查看權(quán)限、授予權(quán)限、回收權(quán)限的兩種方式,掌握刷新權(quán)限的方式。3.掌握使用navicat進(jìn)行數(shù)據(jù)備份的方式,掌握SQL語(yǔ)言備份單個(gè)數(shù)據(jù)庫(kù)、多個(gè)數(shù)據(jù)庫(kù)、所有數(shù)據(jù)庫(kù)。4.掌握使用navicat方式和SQL語(yǔ)言進(jìn)行數(shù)據(jù)還原的方式。教學(xué)重點(diǎn)創(chuàng)建用戶、授予權(quán)限、回收權(quán)限。使用SQL語(yǔ)言備份單個(gè)數(shù)據(jù)庫(kù)、多個(gè)數(shù)據(jù)庫(kù)、所有數(shù)據(jù)庫(kù);使用navicat方式和SQL語(yǔ)言進(jìn)行數(shù)據(jù)還原的方式。教學(xué)難點(diǎn)1.創(chuàng)建用戶、授予權(quán)限。2.使用SQL語(yǔ)言備份單個(gè)數(shù)據(jù)庫(kù)、多個(gè)數(shù)據(jù)庫(kù)、所有數(shù)據(jù)庫(kù),使用SQL語(yǔ)言進(jìn)行數(shù)據(jù)還原的方式。教學(xué)過(guò)程第1-2學(xué)時(shí)(管理用戶)知識(shí)目標(biāo):掌握查看用戶、創(chuàng)建用戶、修改用戶、重命名用戶、刪除用戶的兩種方式能力目標(biāo):掌握查看用戶、創(chuàng)建用戶、修改用戶、重命名用戶、刪除用戶的兩種方式素質(zhì)目標(biāo):培養(yǎng)學(xué)生認(rèn)真仔細(xì)的職業(yè)精神和動(dòng)手實(shí)踐能力一、溫故知新,情境導(dǎo)入1.回顧前面項(xiàng)目中學(xué)習(xí)的數(shù)據(jù)表操作,引出本節(jié)的內(nèi)容:用戶。2.動(dòng)畫引入用戶概念,了解學(xué)習(xí)內(nèi)容。二、知識(shí)講解,實(shí)操演示查看用戶除了通過(guò)Navicat圖形化界面方式查看用戶,也可以使用SQL語(yǔ)句查看。創(chuàng)建用戶在MySQL數(shù)據(jù)庫(kù)中,只有一個(gè)root用戶是無(wú)法管理眾多數(shù)據(jù)的,因此需要?jiǎng)?chuàng)建多個(gè)普通用戶來(lái)管理不同類型的數(shù)據(jù)。創(chuàng)建普通用戶有兩種方式,一種使用Navicat圖形化界面,一種使用SQL語(yǔ)句。(1)使用Navicat圖形化界面方式創(chuàng)建用戶(2)使用SQL語(yǔ)句創(chuàng)建用戶CREATEUSER賬戶名[IDENTIFIEDBY'密碼'][WITH資源控制選項(xiàng)];修改用戶創(chuàng)建用戶后,可以對(duì)用戶的相關(guān)選項(xiàng)進(jìn)行修改。修改用戶有兩種方式,一種使用Navicat圖形化界面,一種使用SQL語(yǔ)句。因Navicat圖形化界面的方式不方便修改用戶密碼,故不作為重點(diǎn)介紹。下面詳細(xì)介紹使用SQL語(yǔ)句修改用戶的方法。ALTERUSER賬戶名[IDENTIFIEDBY'密碼'][WITH資源控制選項(xiàng)];重命名用戶創(chuàng)建好用戶后,也可以對(duì)用戶的名字進(jìn)行重命名。重命名用戶名有兩種方式,一種使用Navicat圖形化界面,一種使用SQL語(yǔ)句。(1)使用Navicat圖形化界面重命名用戶名(2)使用SQL語(yǔ)句重命名用戶名RENAMEUSER舊賬戶名1TO新賬戶名1[,舊賬戶名2TO新賬戶名2]…刪除用戶在mysql中,通常會(huì)創(chuàng)建多個(gè)用戶來(lái)管理數(shù)據(jù)庫(kù)。在使用過(guò)程中如果發(fā)現(xiàn)某些用戶沒(méi)有存在的必要了,就可以將該用戶刪除。刪除用戶有兩種方式,一種使用Navicat圖形化界面,一種使用SQL語(yǔ)句。(1)使用Navicat圖形化界面方式刪除用戶(2)使用SQL語(yǔ)句刪除用戶DROPUSER賬戶名[,賬戶名]…;三、任務(wù)評(píng)測(cè),匯報(bào)展示(1)發(fā)布課堂在線測(cè)試。(2)學(xué)生分小組完成項(xiàng)目需求,并進(jìn)行匯報(bào)展示。第3-4學(xué)時(shí)(授予權(quán)限)知識(shí)目標(biāo):掌握查看權(quán)限、授予權(quán)限、回收權(quán)限的兩種方式,掌握刷新權(quán)限的方式能力目標(biāo):掌握查看權(quán)限、授予權(quán)限、回收權(quán)限的兩種方式,掌握刷新權(quán)限的方式素質(zhì)目標(biāo):培養(yǎng)學(xué)生認(rèn)真仔細(xì)的職業(yè)精神和動(dòng)手實(shí)踐能力一、溫故知新,情境導(dǎo)入1.回顧上節(jié)課學(xué)習(xí)的管理用戶的操作,引出本節(jié)的內(nèi)容:管理權(quán)限。2.通過(guò)動(dòng)畫引入任務(wù)情境,明確學(xué)習(xí)目標(biāo)。二、知識(shí)講解,實(shí)操演示查看權(quán)限MySQL的權(quán)限簡(jiǎn)單的理解就是MySQL允許用戶做其權(quán)限以內(nèi)的事情,不可以越界。MySQL中存在4個(gè)控制權(quán)限的表,分別為user表,db表,tables_priv表,columns_priv表。一般新創(chuàng)建的用戶不允許訪問(wèn)屬于其他SQL用戶的表,也不能立即創(chuàng)建自己的表,只有用戶被授權(quán),才能執(zhí)行相關(guān)操作。用戶是否具有相關(guān)權(quán)限可以通過(guò)Navicat圖形化界面方式查看,也可以通過(guò)SQL語(yǔ)句的方式查看。(1)使用Navicat圖形化界面方式查看權(quán)限(2)使用SQL語(yǔ)句查看權(quán)限SHOWGRANTSFOR賬戶名;授予權(quán)限在MySQL數(shù)據(jù)庫(kù)中,為了保證數(shù)據(jù)的安全性,數(shù)據(jù)庫(kù)管理員需要為每個(gè)用戶賦予不同的權(quán)限,以滿足不同用戶的需求。比如給用戶授予select的權(quán)限,那么該用戶就只能執(zhí)行select操作,不能執(zhí)行其他操作。給用戶授予權(quán)限有兩種方式,一種使用Navicat圖形化界面,一種使用SQL語(yǔ)句。(1)使用Navicat圖形化界面為用戶授予權(quán)限(2)使用SQL語(yǔ)句為用戶授予權(quán)限GRANT權(quán)限類型ON數(shù)據(jù)庫(kù).表名TO賬戶名;回收權(quán)限在MySQL中,為了保證數(shù)據(jù)庫(kù)的安全性,需要將用戶不必要的權(quán)限回收。權(quán)限收回后,用戶賬戶記錄將從db、host、tables_priv和column_priv表中刪除,但是用戶賬戶記錄仍然在user表中保存?;厥諜?quán)限有兩種方式,一種使用Navicat圖形化界面,一種使用SQL語(yǔ)句。(1)使用Navicat圖形化界面方式回收用戶權(quán)限(2)使用SQL語(yǔ)句回收用戶權(quán)限。REVOKE權(quán)限類型ON數(shù)據(jù)庫(kù).表名FROM賬戶名刷新權(quán)限刷新權(quán)限指的是從系統(tǒng)數(shù)據(jù)庫(kù)mysql中的權(quán)限表中重新加載用戶的特權(quán)。執(zhí)行刷新權(quán)限操作的原因在于:CREATEUSER、GRANT等操作會(huì)將服務(wù)器的緩存信息保存到內(nèi)存中,而REVOKE、DROPUSER操作并不會(huì)同步到內(nèi)存中,所以在REVOKE、DROPUSER后推薦使用mysql提供的命令,重新加載用戶的特權(quán)。FLUSHPRIVILEGES;三、任務(wù)評(píng)測(cè),匯報(bào)展示(1)發(fā)布課堂在線測(cè)試。(2)學(xué)生分小組完成項(xiàng)目需求,并進(jìn)行匯報(bào)展示。第5-6學(xué)時(shí)(運(yùn)用備份)知識(shí)目標(biāo):掌握使用navicat進(jìn)行數(shù)據(jù)備份的方式,掌握SQL語(yǔ)言備份單個(gè)數(shù)據(jù)庫(kù)、多個(gè)數(shù)據(jù)庫(kù)、所有數(shù)據(jù)庫(kù)能力目標(biāo):掌握使用navicat進(jìn)行數(shù)據(jù)備份的方式,掌握SQL語(yǔ)言備份單個(gè)數(shù)據(jù)庫(kù)、多個(gè)數(shù)據(jù)庫(kù)、所有數(shù)據(jù)庫(kù)素質(zhì)目標(biāo):培養(yǎng)學(xué)生動(dòng)手實(shí)踐的
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 寧波市南部商務(wù)區(qū)管理辦公室招考2名編外人員高頻重點(diǎn)提升(共500題)附帶答案詳解
- 天津工業(yè)生物所高級(jí)代謝工程中心科研人員招考聘用高頻重點(diǎn)提升(共500題)附帶答案詳解
- 國(guó)家統(tǒng)計(jì)局華寧調(diào)查隊(duì)公益性崗位招考聘用高頻重點(diǎn)提升(共500題)附帶答案詳解
- 二零二五年度酒店資產(chǎn)轉(zhuǎn)讓合同示范文本3篇
- 國(guó)家基礎(chǔ)地理中心公開(kāi)招考畢業(yè)生高頻重點(diǎn)提升(共500題)附帶答案詳解
- 四川綿陽(yáng)三江人力資源開(kāi)發(fā)限責(zé)任公司招聘派駐綿陽(yáng)經(jīng)開(kāi)區(qū)機(jī)關(guān)工作人員6人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 二零二五年度礦山運(yùn)輸車輛安全操作管理合同規(guī)范3篇
- 四川巴中2025招聘市屬事業(yè)單位工作人員歷年高頻重點(diǎn)提升(共500題)附帶答案詳解
- 北京市延慶區(qū)衛(wèi)生健康委員會(huì)所屬事業(yè)單位公開(kāi)招聘15名醫(yī)務(wù)人員高頻重點(diǎn)提升(共500題)附帶答案詳解
- 北京大學(xué)黨委辦公室校長(zhǎng)辦公室招考聘用高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2024年中考語(yǔ)文試題分類匯編:詩(shī)詞鑒賞(學(xué)生版)
- 科學(xué)計(jì)算語(yǔ)言Julia及MWORKS實(shí)踐 課件 3-MWORKS簡(jiǎn)介
- 飛行原理(第二版) 課件 第4章 飛機(jī)的平衡、穩(wěn)定性和操縱性
- 2024年10月自考04532財(cái)務(wù)會(huì)計(jì)專題試題及答案含解析
- 醫(yī)院行政人員禮儀培訓(xùn)
- 暨南大學(xué)珠海校區(qū)財(cái)務(wù)辦招考財(cái)務(wù)工作人員易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 羊水少治療護(hù)理查房
- DB21-T 3874-2023 海水魚工廠化循環(huán)水養(yǎng)殖池設(shè)計(jì)規(guī)范
- DB43T 523-2010 蕹菜栽培技術(shù)規(guī)程
- OQC培訓(xùn)資料教學(xué)課件
- 防溺水課件教學(xué)課件
評(píng)論
0/150
提交評(píng)論