




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
PAGE2《SQLServer2022數(shù)據(jù)庫技術(shù)項目教程》教案課程名稱:數(shù)據(jù)庫應(yīng)用技術(shù)授課年級:202X年級授課學(xué)期:202X學(xué)年第X學(xué)期教師姓名:XX老師2024年5月10日課題名稱項目6數(shù)據(jù)庫的編程操作之任務(wù)1:視圖的創(chuàng)建與應(yīng)用計劃課時2課時內(nèi)容分析SQLServer數(shù)據(jù)庫除了可以使用SQL語句對表進行增、刪、改、查操作,還可以定義視圖,通過視圖實現(xiàn)數(shù)據(jù)的查詢、插入、修改和刪除操作。本章將圍繞視圖進行詳細講解。教學(xué)目標(biāo)及基本要求使學(xué)生掌握視圖的創(chuàng)建、修改和刪除操作使學(xué)生掌握使用視圖對數(shù)據(jù)庫中的數(shù)據(jù)進行查詢、修改、刪除等操作教學(xué)重點創(chuàng)建視圖修改視圖刪除視圖視圖數(shù)據(jù)操作教學(xué)難點創(chuàng)建視圖視圖數(shù)據(jù)操作教學(xué)方式講授為主,講練結(jié)合教學(xué)過程教案13視圖的創(chuàng)建與應(yīng)用一、課程引入1.回顧第五章學(xué)習(xí)知識,引出本節(jié)主題帶領(lǐng)學(xué)生回顧第五章中的SQLServer中的數(shù)據(jù)查詢操作。在數(shù)據(jù)庫操作中,用得最多的就是數(shù)據(jù)查詢,查詢數(shù)據(jù)時,如果數(shù)據(jù)來自于一張表,使用簡單的單表查詢語句即可實現(xiàn),如果數(shù)據(jù)來自于多張表,則需要使用多表連接查詢或嵌套查詢,那么是否可以使用別的方式從數(shù)據(jù)庫中獲取數(shù)據(jù)呢?引出本章中所要講解的內(nèi)容—建立視圖。2.明確學(xué)習(xí)目標(biāo)(1)了解視圖的概念和作用(2)掌握視圖的創(chuàng)建、查看、修改和刪除操作(3)掌握視圖的數(shù)據(jù)操作二、新內(nèi)容的講解1.創(chuàng)建視圖(1)視圖的功能視圖View是數(shù)據(jù)庫的另一種對象,與表的級別相同,以表的方式顯示,有列名和若干行數(shù)據(jù)。視圖是一個虛擬表,它的數(shù)據(jù)來源于表(一個或多個表,稱為基表),甚至是視圖,其內(nèi)容由SELECT語句定義。視圖就如同一張表一樣,對表能夠進行的一般操作都可以應(yīng)用于視圖,例如查詢、插入、修改、刪除操作等。(2)視圖的分類視圖分為兩類:用戶視圖和系統(tǒng)視圖,前者是用戶建立的,后者由系統(tǒng)自動建立。系統(tǒng)視圖不可以修改,用戶視圖不可以修改表結(jié)構(gòu),但可以進行增刪改操作。視圖的創(chuàng)建方式有兩種:SSMS管理器窗口方式和SQL命令方式。(3)使用SSMS管理器窗口創(chuàng)建視圖參考教材【例6-1】。(4)使用SQL命令創(chuàng)建視圖命令格式如下:CREATEVIEW[schema_name.]view_name[(column[,...n])][WITH<view_attribute>[,...n]]ASselect_statement[WITHCHECKOPTION][;]<view_attribute>::={[ENCRYPTION][SCHEMABINDING][VIEW_METADATA]}接著,參考教材對使用SQL命令創(chuàng)建視圖的格式說明,進行詳細講解。然后,通過案例【例6-2】、【例6-3】詳細介紹如何創(chuàng)建視圖。2.應(yīng)用視圖視圖是一個虛擬表,本身并不存儲數(shù)據(jù),它的數(shù)據(jù)來源于表,因此對視圖的操作實際上就是對表的操作。與表相比,使用視圖對表進行添加記錄、更新記錄和刪除記錄等操作會更加簡潔方便,命令格式與表操作的命令格式相同,只需將表名修改成視圖名即可。只要滿足以下條件,就可以通過視圖修改基表中的數(shù)據(jù):任何修改(包括UPDATE、INSERT和DELETE語句)都只能引用一個基表中的列。視圖中正在修改的列必須直接引用表列中的基礎(chǔ)數(shù)據(jù)。被修改的列不受GROUPBY子句、HAVING子句或DISTINCT子句的影響。在視圖的查詢語句中,TOP子句不能與WITHCHECKOPTION子句一起使用。(1)通過視圖插入表數(shù)據(jù)通過案例【例6-4】詳細介紹如何通過視圖插入表數(shù)據(jù)。(2)通過視圖更新基表中的記錄使用UPDATE命令通過視圖可以更新基表中的記錄,該命令的要求與INSERT命令的要求相同,命令格式與更新表中記錄的命令格式相同。通過案例【例6-5】詳細介紹如何通過視圖更新基表中的記錄。(3)通過視圖刪除基表中的記錄使用DELETE命令通過視圖可以刪除基表中的記錄,該命令的要求與INSERT命令的要求相同,命令格式與刪除表中記錄的命令格式相同。通過案例【例6-6】詳細介紹如何通過視圖刪除基表中的記錄。3.修改視圖在定義視圖后,可以在SQLServer數(shù)據(jù)庫引擎中修改其定義,而無須使用SSMS管理器窗口或T-SQL命令刪除并重新創(chuàng)建視圖。(1)修改視圖通過案例【例6-7】、【例6-8】詳細介紹如何修改視圖。(2)刪除視圖通過案例【例6-9】、【例6-10】詳細介紹如何刪除視圖。三、歸納總結(jié),隨堂練習(xí),布置作業(yè)(1)對課堂上講解的知識點進行總結(jié),使用本章后面項目習(xí)題鞏固本節(jié)課的知識點。思考題和習(xí)題請參照教材6.1.1&6.1.2&6.1.3節(jié)內(nèi)容完成“技能訓(xùn)練9:視圖的建立與管理”教學(xué)后記課題名稱項目6數(shù)據(jù)庫的編程操作之任務(wù)2:游標(biāo)的創(chuàng)建與應(yīng)用計劃課時2課時內(nèi)容分析在以前的學(xué)習(xí)中,增、刪、改、查數(shù)據(jù)庫中的數(shù)據(jù)時,只能一次操作所有記錄,若需要每次處理一行或多行記錄,可以使用游標(biāo)實現(xiàn)。教學(xué)目標(biāo)及基本要求使學(xué)生掌握游標(biāo)的創(chuàng)建方法使學(xué)生掌握游標(biāo)的操作流程使學(xué)生掌握使用游標(biāo)提取、更新和刪除數(shù)據(jù)的方法教學(xué)重點游標(biāo)的作用游標(biāo)的操作流程教學(xué)難點創(chuàng)建游標(biāo)應(yīng)用游標(biāo)更新、刪除數(shù)據(jù)教學(xué)方式講授為主,講練結(jié)合教學(xué)過程教案14游標(biāo)的創(chuàng)建與應(yīng)用一、課程引入1.回顧上一節(jié)學(xué)習(xí)知識,引出本節(jié)主題帶領(lǐng)學(xué)生回顧上一節(jié)中的視圖操作。在數(shù)據(jù)庫操作中,可以使用視圖進行查詢、插入、修改和刪除操作,如果要操作查詢結(jié)果中的某一行或部分行,該怎么處理呢?引出本章中所要講解的內(nèi)容—游標(biāo)的創(chuàng)建與應(yīng)用。2.明確學(xué)習(xí)目標(biāo)(1)了解游標(biāo)的作用(2)掌握游標(biāo)的操作流程二、新內(nèi)容的講解1.游標(biāo)的創(chuàng)建關(guān)系型數(shù)據(jù)庫中的操作會對整個行集起作用。例如,由SELECT語句返回的行集包括滿足該語句中的WHERE子句條件的所有行。這種由語句返回的完整行集稱為結(jié)果集,應(yīng)用程序并不總能將整個結(jié)果集作為一個單元進行有效的處理。這些應(yīng)用程序需要一種機制以便每次處理一行或一部分行,游標(biāo)可以滿足上述要求。游標(biāo)的基本操作包括創(chuàng)建游標(biāo)、打開游標(biāo)、循環(huán)讀取游標(biāo)、關(guān)閉游標(biāo)和刪除游標(biāo)。創(chuàng)建游標(biāo)的命令格式如下:DECLAREcursor_nameCURSOR[LOCAL|GLOBAL][FORWARD_ONLY|SCROLL][STATIC|KEYSET|DYNAMIC|FAST_FORWARD][READ_ONLY|SCROLL_LOCKS|OPTIMISTIC][TYPE_WARNING]FORselect_statement[FORUPDATE[OFcolumn_name[,...n]]][;]接著,參考教材中創(chuàng)建游標(biāo)的格式說明,進行詳細講解。然后,通過案例【例6-11】詳細介紹如何創(chuàng)建游標(biāo)。2.游標(biāo)的應(yīng)用在創(chuàng)建好游標(biāo)以后,可以先使用“OPENcursor_name;”語句打開游標(biāo),再使用“FETCHcursor_name;”語句檢索游標(biāo)中的數(shù)據(jù)。(1)使用游標(biāo)提取數(shù)據(jù)使用游標(biāo)可以檢索特定的行,命令格式如下:FETCH[[NEXT|PRIOR|FIRST|LAST|ABSOLUTE{n|@nvar}|RELATIVE{n|@nvar}]FROM]{{[GLOBAL]cursor_name}|@cursor_variable_name}[INTO@variable_name[,...n]]接著,參考教材中使用游標(biāo)提取數(shù)據(jù)的格式說明,進行詳細講解。然后,通過案例【例6-12】、【例6-13】詳細介紹如何使用游標(biāo)提取數(shù)據(jù)。(2)使用游標(biāo)更新或刪除數(shù)據(jù)除了可以使用游標(biāo)讀取數(shù)據(jù),還可以使用游標(biāo)更新或刪除數(shù)據(jù)。通過案例【例6-14】詳細介紹如何使用游標(biāo)更新數(shù)據(jù)。通過案例【例6-15】詳細介紹如何使用游標(biāo)刪除數(shù)據(jù)。(3)關(guān)閉與釋放游標(biāo)①關(guān)閉游標(biāo)在使用完游標(biāo)后,需要關(guān)閉游標(biāo)。關(guān)閉游標(biāo)的命令格式如下:CLOSEcursor_name;格式說明:cursor_name表示游標(biāo)名。②釋放游標(biāo)如果游標(biāo)不再使用,則可以釋放游標(biāo)。釋放游標(biāo)的命令格式如下:DEALLOCATEcursor_name;格式說明:cursor_name表示游標(biāo)名。三、歸納總結(jié),隨堂練習(xí),布置作業(yè)(1)對課堂上講解的知識點進行總結(jié),使用本章后面項目習(xí)題鞏固本節(jié)課的知識點。思考題和習(xí)題請參照教材6.2.1&6.2.2節(jié)內(nèi)容完成“技能訓(xùn)練10:游標(biāo)的創(chuàng)建與使用”。教學(xué)后記課題名稱項目6數(shù)據(jù)庫的編程操作之任務(wù)3:存儲過程的創(chuàng)建與管理計劃課時4課時內(nèi)容分析在數(shù)據(jù)庫開發(fā)過程中,經(jīng)常需要完成一些特定的功能,且這些功能在很多場合都被采用,此時,可以將實現(xiàn)這些功能的SQL語句放置在存儲過程中,在需要這些功能的場合,只需調(diào)用該存儲過程即可。教學(xué)目標(biāo)及基本要求使學(xué)生掌握變量的使用使學(xué)生掌握無參、帶輸入?yún)?shù)、帶輸出參數(shù)的存儲過程的創(chuàng)建使學(xué)生掌握執(zhí)行存儲過程使學(xué)生掌握修改和刪除存儲過程教學(xué)重點存儲過程的創(chuàng)建執(zhí)行修改存儲過程教學(xué)難點存儲過程的創(chuàng)建與執(zhí)行存儲過程的錯誤處理教學(xué)方式講授為主,講練結(jié)合教學(xué)過程教案15存儲過程的創(chuàng)建與管理一、課程引入1.回顧上一節(jié)學(xué)習(xí)知識,引出本節(jié)主題帶領(lǐng)學(xué)生回顧上一節(jié)中的游標(biāo)操作。在SQLServer中,如何像Java語言一樣,預(yù)先定義好方法,在適當(dāng)?shù)臅r候,直接調(diào)用方法來實現(xiàn)某一功能,引出本章中所要講解的內(nèi)容存儲過程。存儲過程是SQL語句和可選控制流語句的預(yù)編譯集合,它們被存儲在數(shù)據(jù)庫中,并可以由應(yīng)用程序通過一個調(diào)用執(zhí)行。2.明確學(xué)習(xí)目標(biāo)(1)了解存儲過程的創(chuàng)建方式(2)掌握無參數(shù)、帶輸入?yún)?shù)、帶輸出參數(shù)存儲過程的創(chuàng)建方法二、新內(nèi)容的講解存儲過程(StoredProcedure)簡稱過程,就是為了完成一定的功能而編寫的程序段,由一系列SQL語句構(gòu)成,相當(dāng)于C語言中的函數(shù)或Java語言中的方法,通過調(diào)用存儲過程名來執(zhí)行存儲過程。存儲過程存放在數(shù)據(jù)庫對象中,屬于數(shù)據(jù)庫,與表和視圖的級別相同。存儲過程的創(chuàng)建方法有兩種:一種是使用SSMS管理器窗口,另一種是使用SQL命令。1.使用SSMS管理器窗口創(chuàng)建存儲過程通過案例【例6-16】詳細介紹如何使用SSMS管理器窗口創(chuàng)建存儲過程。2.使用SQL命令創(chuàng)建存儲過程創(chuàng)建存儲過程的命令格式如下:CREATE{PROC|PROCEDURE}[schema_name.]procedure_name[;number][{@parameter_name[type_schema_name.]data_type}[VARYING][NULL][=default][OUT|OUTPUT|[READONLY]][,...n][WITH<procedure_option>[,...n]][FORREPLICATION]AS{[BEGIN]sql_statement[;][...n][END]}[;]<procedure_option>::=[ENCRYPTION][RECOMPILE][EXECUTEASClause]接著,參考教材中創(chuàng)建存儲過程的格式說明,進行詳細講解。(1)創(chuàng)建無參數(shù)存儲過程通過案例【例6-17】、【例6-18】詳細介紹如何創(chuàng)建無參數(shù)存儲過程。(2)創(chuàng)建帶輸入?yún)?shù)的存儲過程存儲過程是一個子程序,可以在創(chuàng)建存儲過程的代碼中設(shè)計若干個參數(shù),這種參數(shù)稱為形式參數(shù),而在調(diào)用存儲過程時,傳遞給存儲過程的參數(shù)稱為實際參數(shù)。在定義參數(shù)時,必須明確該參數(shù)是輸入?yún)?shù)還是輸出參數(shù)。如果參數(shù)的后面添加了關(guān)鍵字OUTPUT,則該參數(shù)是輸出參數(shù);如果參數(shù)的后面沒有添加關(guān)鍵字OUTPUT,則該參數(shù)是輸入?yún)?shù),帶輸入?yún)?shù)的存儲過程使用更廣泛。接下來,通過案例【例6-19】、【例6-20】詳細介紹如何創(chuàng)建帶輸入?yún)?shù)的存儲過程。在使用存儲過程時,要注意以下兩點:①在定義參數(shù)時,形式參數(shù)名最好不要與對應(yīng)的列名完全相同,以免引起混淆,但相同并不會出錯。②在執(zhí)行存儲過程時,實際參數(shù)要與形式參數(shù)的個數(shù)相等、類型一致、順序相同。(3)創(chuàng)建帶輸入?yún)?shù)和輸出參數(shù)的存儲過程存儲過程可以帶輸出參數(shù),用于將運行結(jié)果返回給該存儲過程的調(diào)用方。在定義輸出參數(shù)時,需要在參數(shù)的后面添加關(guān)鍵字OUTPUT。在編寫存儲過程時,經(jīng)常需要定義變量,以保存中間結(jié)果。在SQLServer2022中,定義變量的命令是DECLARE,格式如下:DECLARE變量名類型(長度)在調(diào)用帶輸出參數(shù)的存儲過程時,也需要設(shè)計一段代碼才能將結(jié)果保存到指定的變量中,供其他程序使用。通過案例【例6-21】詳細介紹如何創(chuàng)建帶輸入?yún)?shù)和輸出參數(shù)的存儲過程。3.執(zhí)行存儲過程(1)執(zhí)行系統(tǒng)存儲過程系統(tǒng)存儲過程以前綴sp_開頭。因為從邏輯意義上講,這些系統(tǒng)存儲過程出現(xiàn)在所有用戶定義的數(shù)據(jù)庫和系統(tǒng)定義的數(shù)據(jù)庫中,所以可以在任意數(shù)據(jù)庫中執(zhí)行這些系統(tǒng)存儲過程,而不必完全限定系統(tǒng)存儲過程的名稱。但是,建議使用sys架構(gòu)名稱對所有系統(tǒng)存儲過程的名稱進行架構(gòu)限定,以防止名稱沖突,如“EXECsys.sp_who;”。(2)執(zhí)行用戶定義的存儲過程當(dāng)執(zhí)行用戶定義的存儲過程時,建議使用架構(gòu)名稱來限定存儲過程的名稱。這種做法可以使性能得到小幅度提升,因為數(shù)據(jù)庫引擎不必搜索多個架構(gòu)。如果某個數(shù)據(jù)庫在多個架構(gòu)中存在同名的存儲過程,則還可以防止執(zhí)行錯誤的存儲過程。(3)使用SSMS管理器窗口執(zhí)行存儲過程(4)使用Transact-SQL命令執(zhí)行存儲過程執(zhí)行存儲過程的命令格式如下:[{EXEC|EXECUTE}]procedure_name[{value|@variable[OUT|OUTPUT]}][,...n][WITH<execute_option>[,...n]]}[;]<execute_option>::={RECOMPILE|{RESULTSETSUNDEFINED}|{RESULTSETSNONE}|{RESULTSETS(<result_sets_definition>[,...n])}}接著,參考教材中執(zhí)行存儲過程的格式說明,進行詳細講解。通過案例【例6-22】詳細介紹如何執(zhí)行存儲過程。4.管理存儲過程(1)修改存儲過程修改存儲過程的方法有兩種:一種是使用SSMS管理器窗口,另一種是使用T-SQL命令。使用SSMS管理器窗口修改存儲過程通過案例【例6-23】詳細介紹如何使用SSMS管理器窗口修改存儲過程。②使用SQL命令修改存儲過程修改存儲過程的命令格式如下:ALTER{PROC|PROCEDURE}[schema_name.]procedure_name[;number][{@parameter_name[type_schema_name.]data_type}[VARYING][=default][OUT|OUTPUT][READONLY]][,...n][WITH<procedure_option>[,...n]][FORREPLICATION]AS{[BEGIN]sql_statement[;][...n][END]}[;]<procedure_option>::=[ENCRYPTION][RECOMPILE][EXECUTEASClause]修改存儲過程的命令格式與創(chuàng)建存儲過程的命令格式基本一致,只需將創(chuàng)建存儲過程的命令格式中的CREATE修改成ALTER即可。通過案例【例6-24】詳細介紹使用SQL命令修改存儲過程。(2)刪除存儲過程刪除存儲過程的方法有兩種:一種是使用SSMS管理器窗口,另一種是使用T-SQL命令。使用SSMS管理器窗口刪除存儲過程通過案例【例6-25】詳細介紹使用SSMS管理器窗口刪除存儲過程。②使用T-SQL命令刪除存儲過程。刪除存儲過程的命令格式如下:DROP{PROC|PROCEDURE}[IFEXISTS]{[schema_name.]procedure}[,...n]格式說明:IFEXISTS:有條件地刪除存儲過程(僅當(dāng)其已存在時)。schema_name:存儲過程所屬架構(gòu)的名稱。procedure:要刪除的存儲過程的名稱。通過案例【例6-26】詳細介紹使用T-SQL命令刪除存儲過程。三、歸納總結(jié),隨堂練習(xí),布置作業(yè)(1)對課堂上講解的知識點進行總結(jié),使用本章后面項目習(xí)題鞏固本節(jié)課的知識點。思考題和習(xí)題請參照教材6.3.1&6.3.2&6.3.3&6.3.4節(jié)內(nèi)容完成“技能訓(xùn)練11:存儲過程的創(chuàng)建與調(diào)用”。教學(xué)后記課題名稱項目6數(shù)據(jù)庫的編程操作之任務(wù)4:觸發(fā)器的創(chuàng)建與管理計劃課時2課時內(nèi)容分析當(dāng)我們在學(xué)生表中插入一條學(xué)生記錄時,學(xué)生所在班級的班級表中對應(yīng)的班級人數(shù)字段應(yīng)相應(yīng)增加1個,當(dāng)我們刪除學(xué)生表中的多條記錄時,學(xué)生所在班級的班級表中對應(yīng)的班級人數(shù)相應(yīng)減少,此時,可以采用觸發(fā)器實現(xiàn)。教學(xué)目標(biāo)及基本要求使學(xué)生理解觸發(fā)器的概念、類型和作用使學(xué)生掌握觸發(fā)器的創(chuàng)建、管理使學(xué)生能夠根據(jù)業(yè)務(wù)需求設(shè)計并實現(xiàn)觸發(fā)器教學(xué)重點觸發(fā)器的概念觸發(fā)器的類型觸發(fā)器的創(chuàng)建與管理教學(xué)難點觸發(fā)器邏輯的編寫觸發(fā)器的調(diào)試和維護教學(xué)方式講授為主,講練結(jié)合教學(xué)過程教案16觸發(fā)器的創(chuàng)建與管理一、課程引入1.回顧上一節(jié)學(xué)習(xí)知識,引出本節(jié)主題帶領(lǐng)學(xué)生回顧上一節(jié)中的存儲過程操作。提出問題:如何確保數(shù)據(jù)在插入、更新或刪除時保持完整性?如何自動執(zhí)行某些業(yè)務(wù)規(guī)則?如:添加、刪除學(xué)生記錄時,該學(xué)生所在班級的人數(shù)是否需要自動更新,如何實現(xiàn)班級人數(shù)的自動更新,引出本章中所要講解的內(nèi)容觸發(fā)器。2.明確學(xué)習(xí)目標(biāo)(1)理解觸發(fā)器的基本概念(2)掌握觸發(fā)器的創(chuàng)建(3)掌握Inserted和Deleted表的使用(4)應(yīng)用觸發(fā)器確保數(shù)據(jù)完整性和業(yè)務(wù)規(guī)則(5)將觸發(fā)器應(yīng)用于實際項目,提高問題解決能力二、新內(nèi)容的講解觸發(fā)器為特殊類型的存儲過程,可以在INSERT、UPDATE或DELETE語句執(zhí)行時自動生效,以便影響觸發(fā)器中定義的表或視圖。觸發(fā)器可以用于強制執(zhí)行業(yè)務(wù)規(guī)則和確保數(shù)據(jù)完整性。將觸發(fā)器和觸發(fā)它的語句作為可以在觸發(fā)器內(nèi)回滾的單個事務(wù)對待。如果檢測到錯誤(如磁盤空間不足),則整個事務(wù)自動回滾。1.觸發(fā)器的分類(1)AFTER觸發(fā)器在執(zhí)行INSERT、UPDATE或DELETE語句的操作之后執(zhí)行AFTER觸發(fā)器。如果違反了約束,則永遠不會執(zhí)行AFTER觸發(fā)器。因此,這些觸發(fā)器不能用于任何可能防止違反約束的處理。(2)INSTEADOF觸發(fā)器INSTEADOF觸發(fā)器用來代替通常的觸發(fā)動作,即當(dāng)對表進行INSERT、UPDATE或DELETE操作時,系統(tǒng)不是直接對表執(zhí)行這些操作,而是把操作內(nèi)容交給觸發(fā)器,讓觸發(fā)器檢查所進行的操作是否正確,如果操作正確才進行相應(yīng)的操作。在觸發(fā)器操作中,系統(tǒng)會建立INSERTED和DELETED兩個臨時表,如表6-1所示。表6-1INSERTED表和DELETED表觸發(fā)操作INSERTED表DELETED表INSERT存放插入的數(shù)據(jù)無UPDATE存放更新后的數(shù)據(jù)存放更新前的數(shù)據(jù)DELETE無存放被刪除的數(shù)據(jù)2.創(chuàng)建觸發(fā)器(1)觸發(fā)器的創(chuàng)建方式觸發(fā)器的創(chuàng)建方法有兩種:一種是使用SSMS管理器窗口,另一種是使用SQL命令。①使用SSMS管理器窗口創(chuàng)建觸發(fā)器通過案例【例6-26】詳細介紹如何使用SSMS管理器窗口創(chuàng)建觸發(fā)器。②使用SQL命令創(chuàng)建觸發(fā)器在創(chuàng)建觸發(fā)器之前,首先需要確定觸發(fā)器對應(yīng)的表、要觸發(fā)哪個操作、是采用AFTER觸發(fā)器還是采用INSTEADOF觸發(fā)器。創(chuàng)建觸發(fā)器的命令格式如下:CREATETRIGGER[schema_name.]trigger_nameON{table|view}[WITH<dml_trigger_option>[,...n]]{FOR|AFTER|INSTEADOF}{[INSERT][,][UPDATE][,][DELETE]}[WITHAPPEND][NOTFORREPLICATION]AS{sql_statement[;][,...n]}<dml_trigger_option>::=[ENCRYPTION][EXECUTEASClause]接著,參考教材中創(chuàng)建觸發(fā)器的格式說明,進行詳細講解。(2)分類創(chuàng)建觸發(fā)器①創(chuàng)建INSERT觸發(fā)器通過案例【例6-26】詳細介紹如何創(chuàng)建INSERT觸發(fā)器。②創(chuàng)建UPDATE觸發(fā)器通過案例【例6-27】詳細介紹如何創(chuàng)建UPDATE觸發(fā)器。③創(chuàng)建DELETE觸發(fā)器通過案例【例6-28】詳細介紹如何創(chuàng)建DELETE觸發(fā)器。④創(chuàng)建INSTEADOF觸發(fā)器通過案例【例6-29】詳細介紹如何創(chuàng)建INSTEADOF觸發(fā)器。3.管理觸發(fā)器(1)修改觸發(fā)器修改觸發(fā)器的方法有兩種:一種是使用SSMS管理器窗口,另一種是使用SQL命令。①使用SSMS管理器窗口修改觸發(fā)器②使用SQL命令方式修改觸發(fā)器修改觸發(fā)器的命令格式如下:ALTERTRIGGER[schema_name.]trigger_nameON{table|view}[WITH<dml_trigger_option>[,...n]]{FOR|AFTER|INSTEADOF}{[INSERT][,][UPDATE][,][DELETE]}[WITHAPPEND][NOTFORREPLICATION]AS{sql_statement[;][,...n]}<dml_trigger_option>::=[ENCRYPTION][EXECUTEASClause]修改觸發(fā)器的命令格式與創(chuàng)建觸發(fā)器的命令格式基本一致,只需將CREATE修改為ALTER即可。(2)刪除觸發(fā)器在刪除觸發(fā)器后,該觸發(fā)器將從當(dāng)前數(shù)據(jù)庫中刪除,它所基于的表和數(shù)據(jù)不會受到影響,刪除表將自動刪除其上的所有觸發(fā)器。刪除觸發(fā)器的方法有兩種:一種是使用SSMS管理器窗口,另一種是使用SQL命令。①使用SSMS管理器窗口刪除觸發(fā)器通過案例【例6-30】詳細介紹如何使用SSMS管理器窗口刪除觸發(fā)器。②使用SQL命令方式刪除觸發(fā)器刪除觸發(fā)器的命令格式如下:DROPTRIGGER[IFEXISTS][schema_name.]trigger_name[,...n][;]格式說明:IFEXISTS:有條件地刪除觸發(fā)器(僅當(dāng)其已存在時)。schema_name:觸發(fā)器所屬架構(gòu)的名稱。trigger_name:要刪除的觸發(fā)器的名稱。通過案例【例6-31】詳細介紹如何使用SQL命令方式刪除觸發(fā)器。三、歸納總結(jié),隨堂練習(xí),布置作業(yè)(1)對課堂上講解的知識點進行總結(jié),使用本章后面項目習(xí)題鞏固本節(jié)課的知識點。思考題和習(xí)題請參照教材6.4.1&6.4.2&6.4.3節(jié)內(nèi)容完成“技能訓(xùn)練12:觸發(fā)器的創(chuàng)建與使用”。教學(xué)后記課題名稱項目6數(shù)據(jù)庫的編程操作之任務(wù)5:索引與事務(wù)的應(yīng)用計劃課時2課時內(nèi)容分析當(dāng)表中有大量記錄時,如果要對表進行查詢,先在表中建立索引,然后在索引中找到符合查詢條件的索引值,最后通過保存在索引中行號快速找到表中對應(yīng)的記錄。在數(shù)據(jù)庫中,我們經(jīng)常需要進行一系列插入、更新或刪除操作。這些操作需要確保數(shù)據(jù)的一致性和完整性,即要么全部成功執(zhí)行,要么全部不執(zhí)行。這就是事務(wù)。教學(xué)目標(biāo)及基本要求使學(xué)生了解索引的基本概念、作用以及種類。使學(xué)生能夠根據(jù)數(shù)據(jù)庫查詢需求,合理地創(chuàng)建和使用索引。使學(xué)生了解事務(wù)的概念、特性(ACID屬性)。使學(xué)生能夠掌握事務(wù)的基本操作,包括事務(wù)的啟動、提交和回滾等。教學(xué)重點索引的基本概念、分類索引的創(chuàng)建與維護事務(wù)的基本概念、事務(wù)的ACID特性事務(wù)操作教學(xué)難點索引的選擇與維護并發(fā)事務(wù)的處理事務(wù)的隔離級別事務(wù)的實際應(yīng)用教學(xué)方式講授為主,講練結(jié)合教學(xué)過程教案17索引與事務(wù)的應(yīng)用一、課程引入1.回顧上一節(jié)學(xué)習(xí)知識,引出本節(jié)主題帶領(lǐng)學(xué)生回顧上一節(jié)中的觸發(fā)器操作。假如你正在閱讀一本大百科全書,如果沒有目錄或者索引,你需要一頁一頁地翻閱,花費大量的時間去尋找你想要的信息。有了索引,你可以迅速定位到你所需信息的頁碼,提高了查找效率。在數(shù)據(jù)庫中,索引的作用與之類似。當(dāng)我們對數(shù)據(jù)庫進行查詢時,如果沒有索引,SQLServer可能需要對整個表進行掃描以找到匹配的數(shù)據(jù),耗費大量的時間和計算資源。而有了索引,SQLServer可以迅速定位到所需的數(shù)據(jù),大大提高了查詢速度,引出本章中所要講解的內(nèi)容索引與事務(wù)的應(yīng)用。2.明確學(xué)習(xí)目標(biāo)(1)理解索引的概念和類型(2)掌握索引的創(chuàng)建與維護(3)理解事務(wù)的概念和隔離級別(4)掌握事務(wù)操作二、新內(nèi)容的講解1.索引的創(chuàng)建與使用索引(Index)是表的對象,它屬于表,使用索引可以快速訪問數(shù)據(jù)庫的表中的特定信息,提高檢索速度。索引是對表中一列或多列的值進行排序的一種結(jié)構(gòu)。索引是一個單獨的、物理的數(shù)據(jù)結(jié)構(gòu),它是某個表中一列或若干列的值的集合和相應(yīng)指向表中物理標(biāo)識這些值的數(shù)據(jù)頁面的邏輯指針清單。索引提供指向存儲在表的指定列中的數(shù)據(jù)值的指針,然后根據(jù)指定的排序順序?qū)@些指針進行排序。使用索引有以下4個優(yōu)點:提高數(shù)據(jù)的檢索速度。創(chuàng)建唯一性索引,保證數(shù)據(jù)表中每行數(shù)據(jù)的唯一性。加速表和表之間的連接。在使用分組和排序子句進行數(shù)據(jù)檢索時,可以顯著減少查詢中分組和排序的時間。使用索引有以下3個缺點:創(chuàng)建索引和維護索引要耗費時間。索引需要占用物理空間。當(dāng)對表中的數(shù)據(jù)進行增加、刪除和修改操作時,索引也要動態(tài)地維護,降低了數(shù)據(jù)的維護速度。在創(chuàng)建索引時,必須確定要使用哪些列及要創(chuàng)建的索引類型。SQLServer2022中主要的索引類型如表6-2所示。表6-2SQLServer2022中主要的索引類型索引類型描述聚集聚集索引根據(jù)聚集索引鍵按照順序?qū)Ρ砘蛞晥D的數(shù)據(jù)行進行排序和存儲非聚集非聚集索引可以在具有聚集索引的表或視圖上定義,也可以在堆上定義。非聚集索引中的每個索引行都包含非聚集鍵值和行定位器。該定位器指向聚集索引或堆中具有鍵值的數(shù)據(jù)行。索引中的行按照索引鍵值的順序存儲,但除非在表上創(chuàng)建聚集索引,否則不能保證數(shù)據(jù)行按照任何特定的順序存儲唯一唯一索引確保索引鍵不包含重復(fù)的值,因此,表或視圖中的每行在某種程度上是唯一的。唯一性可以是聚集索引和非聚集索引的屬性創(chuàng)建索引的方法有兩種:一種是使用SSMS管理器窗口,另一種是使用SQL命令。本任務(wù)的例題均以libsys數(shù)據(jù)庫為例。(1)使用SSMS管理器窗口創(chuàng)建索引在創(chuàng)建索引時,首先需要確定表的索引列。如果表沒有主鍵約束,則可以創(chuàng)建聚集索引;如果表有主鍵約束,則系統(tǒng)禁止創(chuàng)建聚集索引,只能創(chuàng)建非聚集索引,因為系統(tǒng)把主鍵當(dāng)成聚集索引,而聚集索引只能有一個。通過案例【例6-34】詳細介紹如何使用SSMS管理器窗口創(chuàng)建索引。(2)使用SQL命令創(chuàng)建索引創(chuàng)建索引的命令格式如下:CREATE[UNIQUE][CLUSTERED|NONCLUSTERED]INDEXindex_nameON<object>(column[ASC|DESC][,...n])<object>::={database_name.schema_name.table_or_view_name|schema_name.table_or_view_name|table_or_view_name}接著,參考教材中使用SQL命令創(chuàng)建索引的格式說明,進行詳細講解。通過案例【例6-35】、【例6-36】詳細介紹如何使用SQL命令創(chuàng)建索引。(3)查看表中的索引要查看表中的索引,可以用系統(tǒng)存儲過程sp_helpindex實現(xiàn),格式如下:sp_helpindex表名(4)重命名索引①使用表設(shè)計窗口重命名索引②使用“對象資源管理器”窗口重命名索引③使用SQL命令重命名索引使用SQL命令重命名索引的格式如下:sp_rename[@objname=]'object_name',[@newname=]'new_name'格式說明:[@objname=]'object_name':需要重命名的索引名,object_name必須采用table.index或schema.table.index格式。[@newname=]'new_name':指定索引的新名稱,并且該名稱必須遵循標(biāo)識符的規(guī)則。通過案例【例6-37】詳細介紹如何使用SQL命令重命名索引。(5)刪除索引使用DROP命令刪除索引,格式如下:DROPINDEX[IFEXISTS]表名.索引名[,…]通過案例【例6-38】詳細介紹如何使用DROP命令刪除索引。2.處理事務(wù)事務(wù)是一個單一的工作單元。如果事務(wù)成功,則事務(wù)期間所做的所有數(shù)據(jù)修改都將被提交,并成為數(shù)據(jù)庫的永久組成部分。如果事務(wù)遇到錯誤,必須取消或回滾,則所有數(shù)據(jù)修改都將被擦除。也就是說,操作作為一個整體成功或失敗。SQLServer2022以下列事務(wù)模式運行:(1)自動提交事務(wù):每條單獨的語句都是一個事務(wù)。(2)顯式事務(wù):每個事務(wù)均以BEGINTRANSACT
溫馨提示
- 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. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《收玉米》(教案)2024-2025學(xué)年數(shù)學(xué)一年級下冊
- 2025年股權(quán)投資協(xié)議業(yè)績對賭
- 2025年收購公司合同模板
- 三年級上冊數(shù)學(xué)教案-第3單元 長方形和正方形 1 長方形和正方形 第1課時(蘇教版)
- 2025年美發(fā)店合伙經(jīng)營合同
- 2025年公司銷售員合同模板
- (高清版)DB45∕T 560-2021 甘蔗中耕施肥培土機作業(yè)質(zhì)量
- Unit 2 An Accident Lesson 2 Let's practice(教學(xué)設(shè)計)-2024-2025學(xué)年北師大版(三起)英語六年級上冊
- 統(tǒng)編版四年級上冊語文第五單元習(xí)作 《生活萬花筒》公開課一等獎創(chuàng)新教學(xué)設(shè)計
- 期中重難點檢測卷(試題)-小學(xué)數(shù)學(xué)三年級上冊人教版(含解析)
- 綿陽市三臺縣鄉(xiāng)鎮(zhèn)地圖矢量可編輯課件行政區(qū)劃邊界高清(四川省)
- 爭做“四有好老師”-當(dāng)好“四個引路人”
- 術(shù)語翻譯與本地化
- 2024年全國高考甲卷語文真題試卷含答案
- AQ/T 1089-2020 煤礦加固煤巖體用高分子材料(正式版)
- 幼兒園故事繪本《賣火柴的小女孩兒》課件
- DB32-T 4752-2024 一體化污水處理設(shè)備通.用技術(shù)要求
- 妊娠期高血壓疾病試題
- 醫(yī)院多重耐藥菌感染管理規(guī)范
- 《公平競爭審查條例》微課
- 《肺部疾病 案例分析-原發(fā)性肺癌》課件
評論
0/150
提交評論