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