SQLServer數(shù)據(jù)庫(kù)應(yīng)用項(xiàng)目教程學(xué)習(xí)情景_第1頁(yè)
SQLServer數(shù)據(jù)庫(kù)應(yīng)用項(xiàng)目教程學(xué)習(xí)情景_第2頁(yè)
SQLServer數(shù)據(jù)庫(kù)應(yīng)用項(xiàng)目教程學(xué)習(xí)情景_第3頁(yè)
SQLServer數(shù)據(jù)庫(kù)應(yīng)用項(xiàng)目教程學(xué)習(xí)情景_第4頁(yè)
SQLServer數(shù)據(jù)庫(kù)應(yīng)用項(xiàng)目教程學(xué)習(xí)情景_第5頁(yè)
已閱讀5頁(yè),還剩99頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

學(xué)習(xí)情景5:數(shù)據(jù)庫(kù)其它對(duì)象

的創(chuàng)建與管理單元描述數(shù)據(jù)庫(kù)和數(shù)據(jù)表創(chuàng)建完畢,并不表示數(shù)據(jù)庫(kù)的設(shè)計(jì)就結(jié)束了,用戶往往會(huì)對(duì)數(shù)據(jù)庫(kù)有一些特殊的要求,比如:數(shù)據(jù)庫(kù)是否具備數(shù)據(jù)完整性關(guān)系?如何提高數(shù)據(jù)的檢索速度?當(dāng)需要頻繁執(zhí)行某一特殊任務(wù)時(shí),如何避免重復(fù)編寫程序代碼?在SQLServer2005中提供了一系列數(shù)據(jù)庫(kù)對(duì)象來(lái)解決類似以上的問(wèn)題。本學(xué)習(xí)情景將重點(diǎn)介紹在SCDB數(shù)據(jù)庫(kù)中創(chuàng)建和管理這些數(shù)據(jù)庫(kù)對(duì)象(約束、索引、視圖、存儲(chǔ)過(guò)程、觸發(fā)器等)來(lái)解決實(shí)際問(wèn)題的過(guò)程。學(xué)習(xí)目標(biāo)學(xué)會(huì)數(shù)據(jù)完整性的設(shè)計(jì);學(xué)會(huì)索引的創(chuàng)建與管理;學(xué)會(huì)視圖的創(chuàng)建與管理;學(xué)會(huì)存儲(chǔ)過(guò)程的創(chuàng)建與管理;學(xué)會(huì)觸發(fā)器的創(chuàng)建與管理;學(xué)會(huì)游標(biāo)的創(chuàng)建與使用;了解游標(biāo)的使用方法。項(xiàng)目1:SCDB中數(shù)據(jù)完整性的設(shè)計(jì)【任務(wù)描述】數(shù)據(jù)庫(kù)中的數(shù)據(jù)是從外界輸入的,而數(shù)據(jù)的輸入由于種種原因,會(huì)輸入無(wú)效或錯(cuò)誤的信息。那么保證數(shù)據(jù)正確性、一致性和可靠性,就成了數(shù)據(jù)庫(kù)系統(tǒng)關(guān)注的重要問(wèn)題。SQLServer提供了數(shù)據(jù)完整性的設(shè)計(jì)來(lái)解決以上問(wèn)題,具體可以通過(guò)創(chuàng)建約束、默認(rèn)、規(guī)則、用戶自定義函數(shù)來(lái)解決。項(xiàng)目1:SCDB中數(shù)據(jù)完整性的設(shè)計(jì)【任務(wù)目標(biāo)】了解數(shù)據(jù)完整性的基本概念;掌握創(chuàng)建和使用約束來(lái)保證數(shù)據(jù)的完整性;掌握創(chuàng)建、綁定、解綁定和刪除默認(rèn)值的方法;掌握創(chuàng)建、綁定、解綁定和刪除規(guī)則的方法;掌握創(chuàng)建、綁定、使用和刪除用戶自定義完整性的方法。任務(wù)1了解數(shù)據(jù)完整性的基礎(chǔ)知識(shí)數(shù)據(jù)的完整性是指存儲(chǔ)在數(shù)據(jù)庫(kù)中數(shù)據(jù)的正確性、一致性和可靠性。根據(jù)數(shù)據(jù)的完整性所作用的數(shù)據(jù)庫(kù)對(duì)象和范圍的不同,數(shù)據(jù)的完整性分為實(shí)體完整性、域完整性、參照完整性和用戶定義完整性4種。任務(wù)1了解數(shù)據(jù)完整性的基礎(chǔ)知識(shí)1、實(shí)體完整性實(shí)體完整性也可稱表的完整性。它用于保證數(shù)據(jù)庫(kù)中數(shù)據(jù)表的每一個(gè)特定實(shí)體都是唯一的,可以通過(guò)主鍵約束(PRIMARYKEY)、唯一鍵約束(UNIQUE)、索引或標(biāo)識(shí)屬性(IDENTITY)來(lái)實(shí)現(xiàn)。任務(wù)1了解數(shù)據(jù)完整性的基礎(chǔ)知識(shí)2、域完整性域完整性也可稱列完整性,用以指定列的數(shù)據(jù)輸入是否具有正確的數(shù)據(jù)類型、格式以及有效的數(shù)據(jù)范圍。任務(wù)1了解數(shù)據(jù)完整性的基礎(chǔ)知識(shí)3、參照完整性參照完整性是保證參照與被參照表中數(shù)據(jù)的一致性。例如,在學(xué)生表Student中有學(xué)生的學(xué)號(hào)StudentID且在選課表SC中也有學(xué)號(hào)StudentID,而且兩個(gè)表的學(xué)號(hào)StudentID值必須一致,如果在輸入過(guò)程中出現(xiàn)錯(cuò)誤且又沒(méi)有被系統(tǒng)檢查出來(lái),那么數(shù)據(jù)之間將會(huì)造成混亂。任務(wù)1了解數(shù)據(jù)完整性的基礎(chǔ)知識(shí)4、用戶定義完整性用戶定義完整性允許用戶定義不屬于其他任何完整性分類的特定規(guī)則。所有的完整性類型都支持用戶定義完整性。用戶定義的完整性主要通過(guò)使用觸發(fā)器和存儲(chǔ)過(guò)程來(lái)強(qiáng)制實(shí)施完整性。存儲(chǔ)過(guò)程和觸發(fā)器的相關(guān)知識(shí)在后續(xù)任務(wù)中介紹。任務(wù)務(wù)2:約束束的的實(shí)實(shí)現(xiàn)現(xiàn)1.約束束的的類類型型約束束是是SQLServer強(qiáng)制制實(shí)實(shí)行行的的應(yīng)應(yīng)用用規(guī)規(guī)則則,,它它通通過(guò)過(guò)限限制制列列、、行行和和表表中中的的數(shù)數(shù)據(jù)據(jù)來(lái)來(lái)保保證證數(shù)數(shù)據(jù)據(jù)的的完完整整性性。。當(dāng)當(dāng)刪刪除除表表時(shí)時(shí),,表表所所帶帶的的約約束束也也隨隨之之被被刪刪除除。。常用的約束包包括CHECK約束、PRIMARYKEY約束、FOREIGNKEY約束、UNIQUE約束和DEFAULT約束。任務(wù)2:約束的實(shí)現(xiàn)(1)CHECK約束CHECK約束用于限制制輸入一列或或多列的值的的范圍,通過(guò)過(guò)邏輯表達(dá)式式來(lái)判斷數(shù)據(jù)據(jù)的有效性,,也就是一個(gè)個(gè)列的輸入內(nèi)內(nèi)容必須滿足足CHECK約束的條件,,否則,數(shù)據(jù)據(jù)無(wú)法正常輸輸入,從而強(qiáng)強(qiáng)制數(shù)據(jù)的域域完整性。任務(wù)2:約束的實(shí)現(xiàn)(2)DEFAULT約束若在表中某列列定義了DEFAULT約束,用戶在在插入新的數(shù)數(shù)據(jù)行時(shí),如如果該列沒(méi)有有指定數(shù)據(jù),,那么系統(tǒng)將將默認(rèn)值賦給給該列,當(dāng)然然該默認(rèn)值也也可以是空值值(NULL)。任務(wù)2:約束的實(shí)現(xiàn)(3)PRIMARYKEY約束在表中經(jīng)常有有一列或多列列的組合,其其值能唯一標(biāo)標(biāo)識(shí)表中的每每一行。這樣樣的一列或多多列成為表的的主鍵(PrimaryKey),通過(guò)它可以以強(qiáng)制表的實(shí)實(shí)體完整性。。一個(gè)表只能能有一個(gè)主鍵鍵,而且主鍵鍵約束中的列列不能為空值值。任務(wù)2:約束的實(shí)現(xiàn)(4)FOREIGNKEY約束外健(ForeignKey)是用于建立和和加強(qiáng)兩個(gè)表表(主表與從表)的一列或多列列數(shù)據(jù)之間的的連接,當(dāng)添添加、修改或或刪除數(shù)據(jù)時(shí)時(shí),通過(guò)參照照完整性來(lái)保保證它們之間間的數(shù)據(jù)的一一致性。任務(wù)2:約束的實(shí)現(xiàn)(5)UNIQUE約束UNIQUE約束用于確保保表中的兩個(gè)個(gè)數(shù)據(jù)行在非非主鍵中沒(méi)有有相同的列值值。與PRIMARYKEY'約束類似,UNIQUE約束也強(qiáng)制唯唯一性,為表表中的一列或或多列提供實(shí)實(shí)體完整性。。但UNIQUE約束用于非主主健的一列或或多列組合,,且一個(gè)表可可以定義多個(gè)個(gè)UNIQUE約束。另外,,UNIQUE約束可以用于于定義多列組組合,且一個(gè)個(gè)表可以定義義多個(gè)UNIQUE約束,UNIQUE約束可以用于于定義允許空空值的列;而而PRIMAYRKEY約束只能用在在唯一列上,,且不能為空空值。任務(wù)2:約束的實(shí)現(xiàn)2.約束的創(chuàng)建、、查看與刪除除約束的創(chuàng)建、、查看與刪除除等操作均可可在SQLServerManagementStudio的【對(duì)象象資資源源管管理理器器】面板板中中進(jìn)進(jìn)行行,,也也可可使使用用Transact-SQL語(yǔ)句句進(jìn)進(jìn)行行。。任務(wù)務(wù)2:約束束的的實(shí)實(shí)現(xiàn)現(xiàn)(1)CHECK約束束的的創(chuàng)創(chuàng)建建、、查查看看和和刪刪除除【例】在學(xué)學(xué)生生表表(Student)中定定義義學(xué)學(xué)生生的的性性別別Sex列只只能能是是““男男””或或““女女””,,從從而而避避免免用用戶戶輸輸入入其其他他的的值值。。要要解解決決此此問(wèn)問(wèn)題題,,需需要要用用到到CHECK約束束,,使使學(xué)學(xué)生生性性別別列列的的值值只只有有““男男””或或““女女””兩兩種種可可能能,,如如果果用用戶戶輸輸入入其其他他值值,,系系統(tǒng)統(tǒng)均均提提示示用用戶戶輸輸入入無(wú)無(wú)效效。。任務(wù)務(wù)2:約束束的的實(shí)實(shí)現(xiàn)現(xiàn)①在在SQLServerManagementStudio的【對(duì)象象資資源源管管理理器器】中選選取取【數(shù)據(jù)據(jù)庫(kù)庫(kù)】選項(xiàng)項(xiàng)下下的的SCDB數(shù)據(jù)據(jù)庫(kù)庫(kù)。。②展開(kāi)數(shù)據(jù)庫(kù)庫(kù)SCDB,并展開(kāi)數(shù)據(jù)據(jù)庫(kù)SCDB目錄下的【表】,右擊“dbo.Student”選項(xiàng),在在彈出的快快捷菜單中中,選擇【設(shè)計(jì)(G)】命令,打開(kāi)開(kāi)【設(shè)計(jì)表】窗口,選中中“Sex”,然后,,單擊【菜單欄】中的【表設(shè)計(jì)器】窗口工具欄欄上的【CHECK約束】命令,如圖所示;或者將鼠鼠標(biāo)放在列列“Sex”上,右擊擊鼠標(biāo),在在彈出的快快捷菜單中中,選擇【CHECK約束】命令,如圖所示。任務(wù)2:約束的實(shí)現(xiàn)現(xiàn)③在彈出的的【CHECK約束】窗口中單擊擊【添加】按鈕,如圖所示。④單擊“表表達(dá)式”后后面的按鈕,,進(jìn)入入如圖所所示的CHECK約束表表達(dá)式式的界界面,,在““表達(dá)達(dá)式””文本本框中中輸入入約束束表達(dá)達(dá)式““Sex='男'ORSex='女',如圖所所示。然后后,單單擊““確定定”按按鈕。。任務(wù)2:約束的的實(shí)現(xiàn)現(xiàn)⑤在【設(shè)計(jì)表表】窗口單單擊(【保存】),即即完成成了創(chuàng)創(chuàng)建并并保存存CHECK約束的的操作作。以以后用用戶輸輸入數(shù)數(shù)據(jù)時(shí)時(shí),若若輸入入性別別不是是“男男”或或“女女”,,系統(tǒng)統(tǒng)將報(bào)報(bào)告輸輸入無(wú)無(wú)效。。要想刪刪除上上面創(chuàng)創(chuàng)建的的CHECK約束,,選擇擇該約約束,,右擊擊鼠標(biāo)標(biāo),在在彈出出的菜菜單中中選擇擇【刪除】命令,,如圖所所示,然后后單擊擊“關(guān)關(guān)閉””按鈕鈕,即即可刪刪除CHECK約束。。任務(wù)2:約束的的實(shí)現(xiàn)現(xiàn)【例】使用Transact-SQL語(yǔ)句為為學(xué)生生表Student創(chuàng)建CHECK約束。。在SQLServerManagementStudio查詢編編輯器器中運(yùn)運(yùn)行以以下代代碼::USESCDBGOALTERTABLEStudentADDCONSTRAINTCK_StudentCHECK(sex='男'orsex='女')GO任務(wù)2:約束的的實(shí)現(xiàn)現(xiàn)刪除CHECK約束的語(yǔ)語(yǔ)句格式式如下::DROPCONSTRAINTCHECKconstraint_name【例】刪除創(chuàng)建建的約束束CK_Student。USESCDBGOALTERTABLEStudentDROPCONSTRAINTCK_StudentGO任務(wù)3:默認(rèn)值值的實(shí)現(xiàn)現(xiàn)1.默認(rèn)值的的概念與在約束束中介紹紹的DEFAULT約束類似似,使用用默認(rèn)值值也可以以實(shí)現(xiàn)當(dāng)當(dāng)用戶在在向數(shù)據(jù)據(jù)庫(kù)表中中插入新新紀(jì)錄時(shí)時(shí),如果果沒(méi)有給給出某列列的輸入入值,則則有系統(tǒng)統(tǒng)自動(dòng)為為該列輸輸入默認(rèn)認(rèn)值的功功能。默認(rèn)值可可以是常常量、內(nèi)內(nèi)置函數(shù)數(shù)或數(shù)學(xué)學(xué)表達(dá)式式。任務(wù)3:默認(rèn)值值的實(shí)現(xiàn)現(xiàn)2.創(chuàng)建默認(rèn)認(rèn)值通常創(chuàng)建建并使用用默認(rèn)值值的步驟驟為:①創(chuàng)建一個(gè)個(gè)默認(rèn)值對(duì)對(duì)象。創(chuàng)建默認(rèn)的的命令如下下:CREATEDEFAULTdefault_nameASconstraint_expression任務(wù)3:默認(rèn)值的的實(shí)現(xiàn)②將其捆綁綁到列或用用戶自定義義數(shù)據(jù)類型型上。綁定默認(rèn)值值的命令如如下:EXECsp_bindefaultdefault_name,'table_name.[column_name]'任務(wù)3:默認(rèn)值的的實(shí)現(xiàn)3.刪除默認(rèn)值值通常刪除默默認(rèn)值的步步驟為:①解除默認(rèn)認(rèn)值捆綁的的列或用戶戶自定義數(shù)數(shù)據(jù)類型。。解除綁定默默認(rèn)值的命命令如下::EXECsp_unbindefault'table_name.column_name'②刪除該默默認(rèn)值。具體的命令令語(yǔ)句如下下:DROPDEFAULTdefault_name任務(wù)務(wù)4:規(guī)規(guī)則則的的實(shí)實(shí)現(xiàn)現(xiàn)1.規(guī)則則的的概概念念規(guī)則則也也是是實(shí)實(shí)現(xiàn)現(xiàn)數(shù)數(shù)據(jù)據(jù)完完整整性性的的方方法法之之一一,,其其作作用用與與CHECK約束束的的部部分分功功能能相相同同。。規(guī)規(guī)則則可可以以被被綁綁定定到到一一個(gè)個(gè)列列或或者者用用戶戶定定義義數(shù)數(shù)據(jù)據(jù)類類型型上上,,它它提提供供了了一一種種加加強(qiáng)強(qiáng)列列或或用用戶戶定定義義數(shù)數(shù)據(jù)據(jù)類類型型域域約約束束的的機(jī)機(jī)制制。。當(dāng)當(dāng)其其被被綁綁定定到到列列或或用用戶戶定定義義的的數(shù)數(shù)據(jù)據(jù)類類型型上上時(shí)時(shí),,用用來(lái)來(lái)指指定定允允許許輸輸入入到到列列中中的的數(shù)數(shù)據(jù)據(jù),,即即當(dāng)當(dāng)用用戶戶向向表表中中插插入入數(shù)數(shù)據(jù)據(jù)時(shí)時(shí),,用用來(lái)來(lái)指指定定該該列列接接受受數(shù)數(shù)據(jù)據(jù)值值的的范范圍圍。。同同時(shí)時(shí),,規(guī)規(guī)則則與與默默認(rèn)認(rèn)一一樣樣在在數(shù)數(shù)據(jù)據(jù)庫(kù)庫(kù)中中只只需需要要定定義義一一次次,,就就可可以以被被多多次次應(yīng)應(yīng)用用。。任務(wù)4:規(guī)則的實(shí)現(xiàn)現(xiàn)2.創(chuàng)建規(guī)則和默認(rèn)值類似似,規(guī)則創(chuàng)建建后,需要將將其捆綁到列列上或用戶自自定義數(shù)據(jù)類類型上。創(chuàng)建規(guī)則的命命令如下:CREATERULErule_nameASconstraint_expression捆綁規(guī)則的命命令語(yǔ)句如下下:EXECsp_bindrulerule_name,'table_name.[column_name]'任務(wù)4:規(guī)則的實(shí)現(xiàn)現(xiàn)如果在列或數(shù)數(shù)據(jù)類型上已已經(jīng)捆綁了規(guī)規(guī)則,那么當(dāng)當(dāng)再次向它們們捆綁規(guī)則時(shí)時(shí),舊規(guī)則將將自動(dòng)被新規(guī)規(guī)則覆蓋,而而不會(huì)捆綁多多條規(guī)則。捆綁規(guī)則可以以使用系統(tǒng)存存儲(chǔ)過(guò)程sp_bindrule,解除規(guī)則的的相關(guān)綁定可可以使用系統(tǒng)統(tǒng)存儲(chǔ)過(guò)程sp_unbindrule。任務(wù)4:規(guī)則的實(shí)現(xiàn)現(xiàn)3.刪除規(guī)則①解除除規(guī)則則捆綁綁的列列或用用戶自自定義義數(shù)據(jù)據(jù)類型型。解除綁綁定默默認(rèn)值值的命命令如如下::EXECsp_unbindrule'table_name.column_name'②刪除除該規(guī)規(guī)則。。具體的的命令令語(yǔ)句句如下下:DROPRulerule_name任務(wù)5:用戶戶自定定義函函數(shù)的的實(shí)現(xiàn)現(xiàn)1.用戶自自定義義函數(shù)數(shù)為了擴(kuò)擴(kuò)展T-SQL的編程程能力力,SQLServer2005除了提提供的的內(nèi)部部函數(shù)數(shù)外,,還允允許用用戶自自定義義函數(shù)數(shù)。用用戶可可以使使用CREATEFUNCTION語(yǔ)句編編寫自自已的的函數(shù)數(shù),以以滿足足特殊殊需要要。用用戶自自定義義函數(shù)數(shù)可用用傳遞遞一個(gè)個(gè)或多多個(gè)參參數(shù),,并返返回一一個(gè)簡(jiǎn)簡(jiǎn)單的的數(shù)值值。任務(wù)5:用戶戶自定定義函函數(shù)的的實(shí)現(xiàn)現(xiàn)(1)創(chuàng)建建標(biāo)量量用戶戶自定定義函函數(shù)標(biāo)量用用戶自自定義義函數(shù)數(shù)返回回一個(gè)個(gè)簡(jiǎn)單單的數(shù)數(shù)值,,如int、char、decimal等,但但禁止止使用用text、ntext、image、cursor和timestamp作為返返回的的參數(shù)數(shù)。該函數(shù)數(shù)的函函數(shù)體體被封封裝在在以BEGIN語(yǔ)句開(kāi)開(kāi)始,,END語(yǔ)句結(jié)結(jié)束的的范圍圍內(nèi)。。任務(wù)5:用戶戶自定定義函函數(shù)的的實(shí)現(xiàn)現(xiàn)其語(yǔ)法法格式式如下下:CREATEFUNCTION[owner_name].function_name(@parameter_namescalar_parameter_data_type)RETURNscalar_return_data_type[AS]BEGINFUNCTION_bodyRETURNscalar_expressionEND任務(wù)5:用戶戶自定定義函函數(shù)的的實(shí)現(xiàn)現(xiàn)【例】創(chuàng)建一一個(gè)自自定義義函數(shù)數(shù),返返回特特定課課程的的平均均成績(jī)績(jī)。USESCDBGOCREATEFUNCTIONAvgGrade_SC(@CourseIDVarchar(20))RETURNSFLOATASBEGINDECLARE@AVG_GradeFLOATSET@AVG_Grade=(SELECTAVG(Grade)FROMSCWHERECourseID=@CourseID)RETURN@AVG_GradeEND任務(wù)5:用戶戶自定定義函函數(shù)的的實(shí)現(xiàn)現(xiàn)(2)創(chuàng)建直接接表值用戶戶定義函數(shù)數(shù)表值函數(shù)返返回一個(gè)Table型數(shù)據(jù),對(duì)對(duì)直接表值值用戶定義義函數(shù)而言言,返回的的結(jié)果只是是一系列表表值,沒(méi)有有明確的函函數(shù)體。該該表是SELECT語(yǔ)句的結(jié)果集集。其語(yǔ)法格式為為:CREATEFUNCTION[owner_name].function_name(@parameter_namescalar_parameter_data_type)RETURNTABLE[AS]RETURN[(select_statement)]任務(wù)5:用戶自定義義函數(shù)的實(shí)現(xiàn)現(xiàn)【例】創(chuàng)建一個(gè)函數(shù)數(shù),要求返回回屬于同一個(gè)個(gè)班級(jí)的學(xué)生生的基本信息息。在SQLServerManagementStudio查詢編輯器中中運(yùn)行以下代代碼:USESCDBGOCREATEFUNCTION學(xué)生信息(@班級(jí)號(hào)Varchar(20))RETURNSTABLEASRETURN(SELECT*FROMStudentWHEREClassID=@班級(jí)號(hào))項(xiàng)目2:SCDB中索引的創(chuàng)建建與管理【任務(wù)描述】數(shù)據(jù)庫(kù)中的索索引與書(shū)籍中中的目錄類似似,在一本書(shū)書(shū)中,利用目目錄可以快速速查找到所需需要的信息,,無(wú)須閱讀整整本書(shū),在數(shù)數(shù)據(jù)庫(kù)中,索索引使數(shù)據(jù)庫(kù)庫(kù)程序無(wú)須對(duì)對(duì)整個(gè)表進(jìn)行行掃描,就可可以在其中找找到所需要的的數(shù)據(jù)。當(dāng)創(chuàng)創(chuàng)建數(shù)據(jù)庫(kù)并并優(yōu)化其性能能時(shí),應(yīng)該為為數(shù)據(jù)查詢所所使用表的列列創(chuàng)建索引,,建立索引后后,SQLServer2005會(huì)根據(jù)索引的的有序排列,,通過(guò)高效的的查找算法找找到相關(guān)數(shù)據(jù)據(jù)。因此,對(duì)對(duì)表建立索引引,可以加快快數(shù)據(jù)的查詢?cè)兯俣群蜏p少少系統(tǒng)的響應(yīng)應(yīng)時(shí)間。項(xiàng)目2:SCDB中索引的創(chuàng)建建與管理【任務(wù)目標(biāo)】了解索引的基基礎(chǔ)知識(shí);掌握創(chuàng)建索引引的方法;學(xué)會(huì)管理和維維護(hù)索引。任務(wù)1:了解索引的基基礎(chǔ)知識(shí)1.索引概述索引與目錄類類似,如果想想快速查找而而不是逐頁(yè)查查找指定的內(nèi)內(nèi)容,可以通通過(guò)目錄中章章節(jié)的頁(yè)號(hào)找找到其對(duì)應(yīng)的的內(nèi)容。類似似地,索引通通過(guò)記錄表中中的關(guān)鍵值指指向表中的記記錄,這樣數(shù)數(shù)據(jù)庫(kù)引擎就就不用掃描整整個(gè)表而定位位到相關(guān)的記記錄。任務(wù)1:了解索引的基基礎(chǔ)知識(shí)1.索引概述SQLServer中一個(gè)表的存存儲(chǔ)是由數(shù)據(jù)據(jù)頁(yè)和索引頁(yè)頁(yè)兩個(gè)部分組組成的。數(shù)據(jù)據(jù)頁(yè)用來(lái)存放放除了文本和和圖像數(shù)據(jù)以以外的所有與與表的某一行行相關(guān)的數(shù)據(jù)據(jù),索引頁(yè)包包含組成特定定索引的列中中的數(shù)據(jù)。任務(wù)1:了解索引的基基礎(chǔ)知識(shí)2.索引的作用索引是以表列列為基礎(chǔ)的數(shù)數(shù)據(jù)庫(kù)對(duì)象,,它保存著表表中排序的索索引列,并且且記錄了索引引列在數(shù)據(jù)表表中的物理存存儲(chǔ)位置,實(shí)實(shí)現(xiàn)了表中數(shù)數(shù)據(jù)的邏輯排排序,其主要要目的是提高高SQLServer系統(tǒng)的性能,,加快數(shù)據(jù)的的查詢速度和和減少系統(tǒng)的的響應(yīng)時(shí)間。。任務(wù)1:了解索引的基基礎(chǔ)知識(shí)3.建立索引的原原則一般來(lái)說(shuō),適適合在這些列列上創(chuàng)建索引引:(1)在經(jīng)常需需要搜索索的列上上創(chuàng)建索索引,可可以加快快搜索的的速度。。(2)在作為主主鍵的列列上創(chuàng)建建索引,,強(qiáng)制該該列的唯唯一性和和組織表表中數(shù)據(jù)據(jù)的排列列結(jié)構(gòu)。。(3)在經(jīng)常用用在連接接的列上上創(chuàng)建索索引,這這些列主主要是一一些外鍵鍵,可以以加快連連接的速速度。(4)在經(jīng)常常使用用在WHERE子句中中的列列上創(chuàng)創(chuàng)建索索引,,加快快條件件的判判斷速速度。。(5)在經(jīng)常常需要要排序序的列列上創(chuàng)創(chuàng)建索索引,,因?yàn)闉樗饕呀?jīng)經(jīng)排序序,這這樣查查詢可可以利利用索索引的的排序序,加加快排排序查查詢時(shí)時(shí)間。。(6)在經(jīng)常常需要要根據(jù)據(jù)范圍圍進(jìn)行行搜索索的列列上創(chuàng)創(chuàng)建索索引,,因?yàn)闉樗饕呀?jīng)經(jīng)排序序,其其指定定的范范圍是是連續(xù)續(xù)的。。任務(wù)1:了解索索引的的基礎(chǔ)礎(chǔ)知識(shí)識(shí)4.索引的的分類類在MicrosoftSQLServer2005系統(tǒng)中中,有有兩種種基本本類型型的索索引::聚集集索引引和非非聚集集索引引。除除此之之外,,還有有唯一一索引引、包包含索索引、、索引引視圖圖、全全文索索引、、XML索引等等。任務(wù)1:了解索索引的的基礎(chǔ)礎(chǔ)知識(shí)識(shí)(1)聚集集索引引索引的的結(jié)構(gòu)構(gòu)是樹(shù)樹(shù)狀結(jié)結(jié)構(gòu),,樹(shù)的的頂部部稱為為葉級(jí)級(jí),樹(shù)樹(shù)的其其他部部分稱稱為非非葉級(jí)級(jí),樹(shù)樹(shù)的根根部在在非葉葉級(jí)中中。同同樣,,聚集集索引引的葉葉級(jí)和和非葉葉級(jí)構(gòu)構(gòu)成了了一個(gè)個(gè)樹(shù)狀狀結(jié)構(gòu)構(gòu)。在在聚集集索引引中,,表中中的數(shù)數(shù)據(jù)所所在的的數(shù)據(jù)據(jù)頁(yè)就就是聚聚集索索引的的葉級(jí)級(jí),在在葉級(jí)級(jí)之外外的索索引頁(yè)頁(yè)是非非葉級(jí)級(jí),如圖所所示。任務(wù)1:了解索索引的的基礎(chǔ)礎(chǔ)知識(shí)識(shí)聚集索索引在在使用用中具具有以以下特特點(diǎn)::①每一一個(gè)表表只能能有一一個(gè)聚聚集索索引,,因?yàn)闉楸碇兄袛?shù)據(jù)據(jù)的物物理順順序只只有一一個(gè)。。②表中中行的的物理理順序序和索索引中中行的的物理理順序序是相相同的的,在在創(chuàng)建建任何何非聚聚集索索引之之前創(chuàng)創(chuàng)建聚聚集索索引,,這是是因?yàn)闉榫奂饕淖冏兞吮肀碇行行械奈镂锢眄橅樞?,,?shù)據(jù)據(jù)行按按照一一定的的順序序排列列,并并目自自動(dòng)維維護(hù)這這個(gè)順順序。。③聚集集索引引的平平均大大小大大約是是數(shù)據(jù)據(jù)表的的百分分之五五,但但是,,實(shí)際際的聚聚集索索引的的大小小常常常根據(jù)據(jù)索引引列的的大小小變化化而變變化。。④在索索引的的創(chuàng)建建過(guò)程程中,,SQLServer臨時(shí)使使用當(dāng)當(dāng)前數(shù)數(shù)據(jù)庫(kù)庫(kù)的磁磁盤空空間,,當(dāng)創(chuàng)創(chuàng)建聚聚集索索引時(shí)時(shí),需需要120%的表空空間的的大小小,因因此,,一定定要保保證有有足夠夠的空空間來(lái)來(lái)創(chuàng)建建聚集集索引引。任務(wù)1:了解索索引的的基礎(chǔ)礎(chǔ)知識(shí)識(shí)(2)非聚聚集索索引非聚集集索引引具有有與表表的數(shù)數(shù)據(jù)完完全分分離的的結(jié)構(gòu)構(gòu)。使使用非非聚集集索引引不用用將物物理數(shù)數(shù)據(jù)頁(yè)頁(yè)中的的數(shù)據(jù)據(jù)按列列排序序。非聚集集索引引表示示行的的邏輯輯順序序。在在非聚聚集索索引中中,葉葉級(jí)沒(méi)沒(méi)有包包含數(shù)數(shù)據(jù)行行,如圖所所示。任務(wù)1:了解索索引的的基礎(chǔ)礎(chǔ)知識(shí)識(shí)(3)唯一一索引引唯一索索引確確保索索引鍵鍵不包包含重重復(fù)的的值,,因此此,表表或視視圖中中的每每一行行在某某種程程度上上是唯唯一的的。例例如,,如果果在表表中的的“姓姓名””字段段上創(chuàng)創(chuàng)建了了唯一一索引引,則則以后后輸入入的姓姓名將將不能能同名名。創(chuàng)建PRIMARYKEY或UNIQUE約束會(huì)會(huì)在表表中指指定的的列上上自動(dòng)動(dòng)創(chuàng)建建唯一一索引引。聚集索引和和非聚集索索引都可以以是唯一索索引。任務(wù)2:創(chuàng)建索引引1、在【對(duì)象資源管管理器】中創(chuàng)建索引引【例】在SCDB數(shù)據(jù)庫(kù)中的的Student表上創(chuàng)建基基于Name列,名為Student_index的不唯一、、非聚集索索引。(1)在SQLServerManagementStudio的【對(duì)象資源管管理器】面板中,選選擇要?jiǎng)?chuàng)建建索引的表表Student,然后展開(kāi)開(kāi)Student表前面的““+”號(hào),選中中【索引】選項(xiàng)右擊,,在彈出的的快捷菜單單中選擇““新建索引引”命令,,如圖所示。(2)選擇【新建索引】命令,進(jìn)入入如圖5.34所示的【新建索引】窗口,在該該窗口中列列出了Student表上要建立立的索引,,包含其名名稱、是不不是聚集索索引、是否否設(shè)置唯一一索引等。。輸入索引引名稱為““Student_index”,選擇【非聚集】選項(xiàng)。任務(wù)2:創(chuàng)建索引引(3)單擊【添加】按鈕進(jìn)入如圖所示的界面,在在列表中選選擇需要?jiǎng)?chuàng)創(chuàng)建索引的的Name列(對(duì)于復(fù)復(fù)合索引,,可以選擇擇多個(gè)組合合列)。(4)單擊【確定】按鈕,SQLServer將完成索引引的創(chuàng)建。。任務(wù)2:創(chuàng)建索引引2.使用Transact-SQL語(yǔ)句創(chuàng)建索索引創(chuàng)建索引使用用CREATEINDEX語(yǔ)句。其語(yǔ)法法如下:CREATE[UNIQUE][CLUSTERED|NONCLUSTERED]INDEXindex_nameON{table_name|view_name}([column1[ASC|DESC],column2[ASC|DESC],……]|[express])[TABLESPACEtablespace_name][PCTFREEn1][STORAGE(INITIALn2)][NOLOGGING][NOLINE][NOSORT];任務(wù)3:查看索引信息息1.在【對(duì)象資源管理理器】中查看索引信信息在SQLServerManagementStudio的【對(duì)象資源管理理器】面板中,使用用與創(chuàng)建索引引同樣的方法法,打開(kāi)如下下圖所示的快快捷菜單,選選擇“屬性””命令,即可可看到該索引引對(duì)應(yīng)的信息息。任務(wù)3:查看索引信息息2.使用系統(tǒng)存儲(chǔ)儲(chǔ)過(guò)程sp_helpindex查看指定表的的索引信息【例】使用系統(tǒng)存儲(chǔ)儲(chǔ)過(guò)程sp_helpindex查看SCDB數(shù)據(jù)庫(kù)中Student表的索引信息息。在SQLServerManagementStudio查詢編輯器中中運(yùn)行如下命命令:USESCDBGOEXECsp_helpindexStudentGO任務(wù)4:重命名索引引1.在【對(duì)象資源管理理器】中重命命名索索引在SQLServerManagementStudio的【對(duì)象資資源管管理器器】面板中中,使使用與與創(chuàng)建建索引引同樣樣的方方法,,打開(kāi)開(kāi)如下下圖所所示的的快捷捷菜單單,選選擇““重命命名””命令令,然然后直直接輸輸入新新名即即可。。任務(wù)4:重命名索引引2.通過(guò)Transact-SQL語(yǔ)句來(lái)實(shí)現(xiàn),,更改索引名名稱的命令格格式如下:EXECsp_renametable_nameold_index_name,new_index_name其中:Table_name:索引所在的的表名稱。Old_Index_name:要重新命名名的索引的名名稱。New_Index_name:新的索引名名稱。任務(wù)5:刪除索引1.在【對(duì)象資源管理理器】中刪除索引在SQLServerManagementStudio的【對(duì)象資源管理理器】面板中展開(kāi)SCDB數(shù)據(jù)庫(kù),單擊擊【表】選項(xiàng)展開(kāi)Student表,再展開(kāi)【索引】前面的“+”號(hào),選中索索引名為Student_index的索引,在彈彈出的快捷菜菜單中選擇【刪除】命令,進(jìn)入如圖所示的窗口,單擊擊【確定】按鈕,即可刪刪除該索引。。2.使用Transact-SQL語(yǔ)句刪除索引引使用Transact-SQL語(yǔ)句刪除索引引的語(yǔ)法格式式如下:DROPINDEXTable_name,index_name[,Table_name,index_name……]其中:Table_name:索引所在的的表名稱。Index_name:要?jiǎng)h除的索索引的名稱。項(xiàng)目3:SCDB中視圖的創(chuàng)建建與管理【任務(wù)描述】視圖(View)作為一種數(shù)據(jù)據(jù)庫(kù)對(duì)象,為為用戶提供了了一個(gè)可以檢檢索數(shù)據(jù)表中中的數(shù)據(jù)的方方式。用戶通通過(guò)視圖來(lái)瀏瀏覽數(shù)據(jù)表中中感興趣的部部分或全部數(shù)數(shù)據(jù),而數(shù)據(jù)據(jù)的物理存儲(chǔ)儲(chǔ)位置仍然在在表中?!救蝿?wù)目標(biāo)】了解視圖的基基本概念、作作用和特點(diǎn);;掌握創(chuàng)建、、修改和刪除除視圖的方法法并能靈活運(yùn)運(yùn)用視圖來(lái)簡(jiǎn)簡(jiǎn)化表,及簡(jiǎn)簡(jiǎn)化數(shù)據(jù)的查查詢。任務(wù)1:了解視圖的的基礎(chǔ)知識(shí)1.視圖的概念視圖是一個(gè)虛虛擬表,并不不表示任何物物理數(shù)據(jù),只只是用來(lái)查看看數(shù)據(jù)的窗口口而已。視圖圖與真正的表表很類似,也也是由一組命命名的列和數(shù)數(shù)據(jù)行所組成成,其內(nèi)容由由查詢所定義義。但是視圖圖并不是以一一組數(shù)據(jù)的形形式存儲(chǔ)在數(shù)數(shù)據(jù)庫(kù)中,數(shù)數(shù)據(jù)庫(kù)中只存存儲(chǔ)視圖的定定義,而不存存儲(chǔ)視圖對(duì)應(yīng)應(yīng)的數(shù)據(jù),這這些數(shù)據(jù)仍存存儲(chǔ)在導(dǎo)出視視圖的基本表表中。當(dāng)基本本表中的數(shù)據(jù)據(jù)發(fā)生變化時(shí)時(shí),從視圖中中查詢出來(lái)的的數(shù)據(jù)也隨之之改變。任務(wù)1:了解視圖的的基礎(chǔ)知識(shí)2.使用視圖的優(yōu)優(yōu)點(diǎn)和缺點(diǎn)(1)使用視圖的的優(yōu)點(diǎn)數(shù)據(jù)保密。對(duì)對(duì)不同的用戶戶定義不同的的視圖,使用用戶只能看到到與自己有關(guān)關(guān)的數(shù)據(jù)。簡(jiǎn)化查詢操作作。為復(fù)雜的的查詢建立一一個(gè)視圖,用用戶不必輸入入復(fù)雜的查詢?cè)冋Z(yǔ)句,只需需針對(duì)此視圖圖做簡(jiǎn)單的查查詢即可。保證數(shù)據(jù)的邏邏輯獨(dú)立性。。對(duì)于視圖的的操作,例如如,查詢只依依賴于視圖的的定義,當(dāng)構(gòu)構(gòu)成視圖的基基本表需要修修改時(shí),只需需要修改視圖圖定義中的子子查詢部分,,而基于視圖圖的查詢不用用改變。任務(wù)1:了解視圖的的基礎(chǔ)知識(shí)(2)使用視圖的的缺點(diǎn)當(dāng)更新視圖中中的數(shù)據(jù)時(shí),,實(shí)際上是對(duì)對(duì)基本表的數(shù)數(shù)據(jù)進(jìn)行更新新。事實(shí)上,,當(dāng)從視圖中中插入或者刪刪除時(shí),情況況也是這樣。。然而,某些些視圖是不能能更新數(shù)據(jù)的的,這些視圖圖有如下的特特征:有UNION等集合合操作作符的的視圖圖。有GROUPBY子句的的視圖圖。有諸諸如如AVG,SUM或者者M(jìn)AX等函函數(shù)數(shù)的的視視圖圖。。使用用DISTINCT關(guān)鍵鍵字字的的視視圖圖。。連接接表表的的視視圖圖(其中中有有一一些些例例外外)。任務(wù)務(wù)2:創(chuàng)創(chuàng)建建視視圖圖1.在【對(duì)象象資資源源管管理理器器】中創(chuàng)創(chuàng)建建視視圖圖【例】利用用【對(duì)象象資資源源管管理理器器】在SCDB數(shù)據(jù)據(jù)庫(kù)庫(kù)中中創(chuàng)創(chuàng)建建一一個(gè)個(gè)名名為為V_Student的視視圖圖,,該該視視圖圖僅僅查查看看Student表中中來(lái)來(lái)自自““荊荊門門””的的學(xué)學(xué)生生的的基基本本信信息息。。(1)啟動(dòng)動(dòng)SQLServerManagementStudio,在【對(duì)象資資源管管理器器】的樹(shù)型型目錄錄中,,找到到SCDB,展開(kāi)開(kāi)該數(shù)數(shù)據(jù)庫(kù)庫(kù)。(2)選擇擇【視圖】,按一一下鼠鼠標(biāo)右右鍵,,在彈彈出的的快捷捷菜單單中選選擇【新建視視圖】命令,,出現(xiàn)現(xiàn)如圖所所示。任務(wù)2:創(chuàng)建建視圖圖(3)在彈彈出的的【添加表表】對(duì)話框框選擇擇Student表,點(diǎn)點(diǎn)擊【添加】按鈕,,然后后點(diǎn)擊擊【關(guān)閉】按鈕關(guān)關(guān)閉【添加表表】對(duì)話框框,如圖所所示。(4)在如圖所所示的對(duì)話話框的的代碼碼編輯輯窗格格編輯輯代碼碼。(5)點(diǎn)擊擊工具具欄的的,彈出出如圖所所示的視圖圖保存存對(duì)話話框,,輸入入視圖圖的名名稱““V_Student”,,點(diǎn)點(diǎn)擊擊【確定定】按鈕鈕,,即即完完成成視視圖圖的的創(chuàng)創(chuàng)建建。。任務(wù)務(wù)2:創(chuàng)創(chuàng)建建視視圖圖2.使用用Transact-SQL語(yǔ)句句創(chuàng)創(chuàng)建建視視圖圖基本本語(yǔ)語(yǔ)法法如如下下::CREATEVIEWview_name[WITHENCRYPTION]ASselect_statement其中中,,WITHENCRYPTION子句句表表示示對(duì)對(duì)視視圖圖加加密密。。任務(wù)務(wù)3:顯顯示示視視圖圖的的信信息息1.在【對(duì)象象資資源源管管理理器器】中顯顯示示視視圖圖的的信信息息【例5.29】】在SQLServerManagementStudio窗口口中中查查看看和和修修改改視視圖圖V_Student的定定義義信信息息。。(1)在在【對(duì)象象資資源源管管理理器器】面板板中中展展開(kāi)開(kāi)【數(shù)據(jù)據(jù)庫(kù)庫(kù)】選項(xiàng)項(xiàng),,然然后后展展開(kāi)開(kāi)【SCDB】】選項(xiàng)項(xiàng)。。(2)展展開(kāi)開(kāi)【視圖圖】選項(xiàng)項(xiàng),,在在視視圖圖列列表表中中可可以以見(jiàn)見(jiàn)到到名名為為V_Student的視視圖圖。。如如果果沒(méi)沒(méi)有有看看到到,,單單擊擊““刷刷新新””按按鈕鈕,,刷刷新新一一次次。。(3)右右擊擊V_Student視圖圖,,在在彈彈出出的的快快捷捷菜菜單單中中選選擇擇【設(shè)計(jì)計(jì)】命令令打打開(kāi)開(kāi)如圖所示窗口,可以在在該對(duì)話框中中直接對(duì)視圖圖的定義進(jìn)行行修改。任務(wù)3:顯示視圖的的信息2.通過(guò)執(zhí)行系統(tǒng)統(tǒng)存儲(chǔ)過(guò)程sp_helptext查看視圖的信信息【例】通過(guò)執(zhí)行系統(tǒng)統(tǒng)存儲(chǔ)過(guò)程sp_helptext查看視圖V_Student2的定義信息。。在SQLServerManagementStudio查詢編輯器中中運(yùn)行如下命命令:USESCDBGOsp_helptext'V_Student2'任務(wù)4:重命名視圖圖【例】將視圖V_Student2重新命名為V_Stu2。(1)在【對(duì)象資源管理理器】面板中展開(kāi)【數(shù)據(jù)庫(kù)】選項(xiàng),然后展展開(kāi)【SCDB】】選項(xiàng)。(2)展開(kāi)【視圖】選項(xiàng),在視圖圖列表中選擇擇名為V_Student2的視圖,右擊擊鼠標(biāo)在彈出出的菜單中選選擇【重命名】,如圖所示,然后將視圖圖V_Student2重新命名為V_Stu2。任務(wù)4:重命名視圖圖【例】將視圖V_Stu2重新命名為V_Student2。在SQLServerManagementStudio查詢編輯器中中運(yùn)行如下命命令:USESCDBGOEXECsp_rename'V_Stu2','V_Student2'任務(wù)5:視圖的修改改和刪除1.視圖的修改視圖的修改是是由ALTER語(yǔ)句來(lái)完成的的,基本語(yǔ)法法如下:ALTERVIEWview_name[WITHENCRYPTION]ASSelect_statement任務(wù)5:視圖的修改改和刪除2.視圖的刪除視圖的刪除是是通過(guò)DROP語(yǔ)句來(lái)實(shí)現(xiàn)的的?!纠渴褂肨ransact-SQL語(yǔ)句刪除視圖圖V_Student。在SQLServerManagementStudio查詢編輯器中中運(yùn)行如下命命令:USESCDBGODROPV_StudentGO項(xiàng)目:4SCDB中存儲(chǔ)過(guò)程的的創(chuàng)建與管理理【任務(wù)描述】當(dāng)用戶使用一一串Transact-SQL語(yǔ)句訪問(wèn)服務(wù)務(wù)器上的數(shù)據(jù)據(jù)時(shí),首先將將Transact-SQL語(yǔ)句發(fā)送到服服務(wù)器,由服服務(wù)器編譯Transact-SQL語(yǔ)句,并進(jìn)行行優(yōu)化產(chǎn)生查查詢的執(zhí)行計(jì)計(jì)劃,之后數(shù)數(shù)據(jù)庫(kù)引擎執(zhí)執(zhí)行查詢計(jì)劃劃,最終將執(zhí)執(zhí)行結(jié)果發(fā)回回客戶程序。。每當(dāng)執(zhí)行一一段Transact-SQL語(yǔ)句時(shí),都要要重復(fù)以上操操作。是否可可以免去以上上重復(fù)操作,,而是將用戶戶經(jīng)常執(zhí)行的的可以實(shí)現(xiàn)某某種特殊功能能的代碼看成成一個(gè)集合,,當(dāng)用戶需要要使用這段代代碼時(shí)直接調(diào)調(diào)用呢?SQLServer提供了存儲(chǔ)過(guò)過(guò)程這一數(shù)據(jù)據(jù)庫(kù)對(duì)象來(lái)解解決以上問(wèn)題題。項(xiàng)目:4SCDB中存儲(chǔ)過(guò)程的的創(chuàng)建與管理理【任務(wù)目標(biāo)】了解存儲(chǔ)過(guò)程程的基本概念念和作用;了了解存儲(chǔ)過(guò)程程的分類;學(xué)學(xué)會(huì)創(chuàng)建和執(zhí)執(zhí)行存儲(chǔ)過(guò)程程的方法;學(xué)學(xué)會(huì)管理和維維護(hù)存儲(chǔ)過(guò)程程;掌握存儲(chǔ)儲(chǔ)過(guò)程的重編編譯處理;學(xué)學(xué)會(huì)系統(tǒng)存儲(chǔ)儲(chǔ)過(guò)程和擴(kuò)展展存儲(chǔ)過(guò)程的的調(diào)用。任務(wù)1:了解存儲(chǔ)過(guò)過(guò)程的基礎(chǔ)知知識(shí)1.存儲(chǔ)過(guò)程的基基本概念存儲(chǔ)過(guò)程是在在數(shù)據(jù)庫(kù)服務(wù)務(wù)器端執(zhí)行的的一組Transact-SQL語(yǔ)句的集合,,經(jīng)編譯后存存放在數(shù)據(jù)庫(kù)庫(kù)服務(wù)器中。。它能夠向用用戶返返回?cái)?shù)數(shù)據(jù)、向數(shù)據(jù)據(jù)庫(kù)表中寫入入和修改數(shù)據(jù)據(jù),還可以執(zhí)執(zhí)行系統(tǒng)函數(shù)數(shù)和管理操作作。用戶在編編程過(guò)程中只只需要給出存存儲(chǔ)過(guò)程的名名稱和必需的的參數(shù),就可可以方便地調(diào)調(diào)用它們。任務(wù)1:了解存儲(chǔ)過(guò)過(guò)程的基礎(chǔ)知知識(shí)2.存儲(chǔ)過(guò)程的特特點(diǎn)可以將存儲(chǔ)過(guò)過(guò)程的特點(diǎn)歸歸納如下:(1)能夠在單個(gè)個(gè)存儲(chǔ)過(guò)程中中執(zhí)行一系列列的Transact-SQL語(yǔ)句,也能夠夠在一個(gè)存儲(chǔ)儲(chǔ)過(guò)程中調(diào)用用其他的存儲(chǔ)儲(chǔ)過(guò)程。(2)存儲(chǔ)過(guò)程是是保存在服務(wù)務(wù)器端的已經(jīng)經(jīng)編譯的Transact-SQL語(yǔ)句,因此比比一般的Transact-SQL語(yǔ)句執(zhí)行速度度快,同時(shí)減減少了網(wǎng)絡(luò)流流量,節(jié)省大大量時(shí)間和數(shù)數(shù)據(jù)量。(3)存儲(chǔ)過(guò)程可可以使用控制制流語(yǔ)句和變變量,大大增增強(qiáng)了SQL的功能。(4)存儲(chǔ)過(guò)程在在提交前會(huì)自自動(dòng)檢查語(yǔ)法法,避免了一一些不必要錯(cuò)錯(cuò)誤的出現(xiàn)。。(5)存儲(chǔ)儲(chǔ)過(guò)程程是管管理員員放在在服務(wù)務(wù)器端端的Transact-SQL語(yǔ)句,,可以以設(shè)置置用戶戶對(duì)存存儲(chǔ)過(guò)過(guò)程的的使用用權(quán)限限,從從而保保證了了數(shù)據(jù)據(jù)庫(kù)訪訪問(wèn)的的安全全性。。任務(wù)1:了解解存儲(chǔ)儲(chǔ)過(guò)程程的基基礎(chǔ)知知識(shí)3.存儲(chǔ)過(guò)過(guò)程的的分類類SQLServer2005提供了了三種種存儲(chǔ)儲(chǔ)過(guò)程程:用用戶自自定義義存儲(chǔ)儲(chǔ)過(guò)程程、系系統(tǒng)存存儲(chǔ)過(guò)過(guò)程和和擴(kuò)展展存儲(chǔ)儲(chǔ)過(guò)程程。(1)用戶自自定義存存儲(chǔ)過(guò)程程用戶自定定義存儲(chǔ)儲(chǔ)過(guò)程也也就是用用戶自行行創(chuàng)建并并存儲(chǔ)在在用戶數(shù)數(shù)據(jù)庫(kù)中中的存儲(chǔ)儲(chǔ)過(guò)程,,它用于于完成用用戶指定定的某一一特定功功能(如查詢用用戶所需需的數(shù)據(jù)據(jù)信息)。任務(wù)1:了解存存儲(chǔ)過(guò)程程的基礎(chǔ)礎(chǔ)知識(shí)(2)系統(tǒng)存存儲(chǔ)過(guò)程程SQLServer2005不僅提供供用戶自自定義存存儲(chǔ)過(guò)程程的功能能,而且且也提供供許多可可作為工工具使用用的系統(tǒng)統(tǒng)存儲(chǔ)過(guò)過(guò)程。系系統(tǒng)存儲(chǔ)儲(chǔ)過(guò)程通通常使用用“sp_”為前綴綴,主要要用于管管理SQLServer和顯示有有關(guān)數(shù)據(jù)據(jù)庫(kù)及用用戶的信信息。(3)擴(kuò)展存儲(chǔ)儲(chǔ)過(guò)程擴(kuò)展存儲(chǔ)過(guò)過(guò)程(ExtendedStoredProcedures)是用戶可以以使用外部部程序語(yǔ)言言編寫的存存儲(chǔ)過(guò)程。。任務(wù)2:創(chuàng)建和執(zhí)執(zhí)行存儲(chǔ)過(guò)過(guò)程1.創(chuàng)建和執(zhí)行行簡(jiǎn)單存儲(chǔ)儲(chǔ)過(guò)程(1)創(chuàng)建存儲(chǔ)儲(chǔ)過(guò)程的SQL語(yǔ)法格式如如下:CREATEPROCEDUREprocedure_name[WITHENCRYPTION][WITHRECOMPILE]ASSq1_statement任務(wù)2:創(chuàng)建建和執(zhí)執(zhí)行存存儲(chǔ)過(guò)過(guò)程(2)執(zhí)行行存儲(chǔ)儲(chǔ)過(guò)程程在存儲(chǔ)儲(chǔ)過(guò)程程創(chuàng)建建成功功后,,用戶戶可以以執(zhí)行行存儲(chǔ)儲(chǔ)過(guò)程程來(lái)檢檢查存存儲(chǔ)過(guò)過(guò)程的的返回回結(jié)果果。執(zhí)執(zhí)行存存儲(chǔ)過(guò)過(guò)程主主要有有兩種種方法法,一一是在在SQLServerManagementStudio的查詢?cè)兙庉嬢嬈髦兄羞\(yùn)用用Transact-SQL語(yǔ)句執(zhí)執(zhí)行;;二是是在SQLServerManagementStudio的對(duì)象象資源源管理理器中中直接接用鼠鼠標(biāo)操操作執(zhí)執(zhí)行存存儲(chǔ)過(guò)過(guò)程。。任務(wù)2:創(chuàng)建建和執(zhí)執(zhí)行存存儲(chǔ)過(guò)過(guò)程在SQLServerManagementStudio查詢編編輯器器中執(zhí)執(zhí)行存存儲(chǔ)過(guò)過(guò)程的的操作作步驟驟如下下:打開(kāi)SQLServerManagementStudio查詢編編輯器器;在SQLServerManagementStudio查詢編編輯器器中輸輸入執(zhí)執(zhí)行存存儲(chǔ)過(guò)過(guò)程的的Transact-SQL語(yǔ)句,,然后后單擊擊執(zhí)行行。執(zhí)行存存儲(chǔ)過(guò)過(guò)程的的Transact-SQL語(yǔ)句基基本語(yǔ)語(yǔ)法如如下:EXECprocedure_name任務(wù)3:修改存存儲(chǔ)過(guò)過(guò)程1.使用Transact-SQL語(yǔ)句句修修改改存存儲(chǔ)儲(chǔ)過(guò)過(guò)程程修改改存存儲(chǔ)儲(chǔ)過(guò)過(guò)程程是是由由ALTER語(yǔ)句句來(lái)來(lái)完完成成的的,,其其語(yǔ)語(yǔ)法法如如下下::ALTERPROCEDUREprocedure_name[WITHENCRYPTION][WITHRECOMPILE]ASSql_statement任務(wù)務(wù)3:修改改存存儲(chǔ)儲(chǔ)過(guò)過(guò)程程2.在【對(duì)象象資資源源管管理理器器】面板板中中修修改改存存儲(chǔ)儲(chǔ)過(guò)過(guò)程程通過(guò)過(guò)SQLServerManagementStudio中的的【對(duì)象象資資源源管管理理器器】來(lái)修修改改存存儲(chǔ)儲(chǔ)過(guò)過(guò)程程的的具具體體步步驟驟如如下下::⑴展展開(kāi)開(kāi)SQLServerManagementStudio【【對(duì)象象資資源源管管理理器器】中的的【數(shù)據(jù)據(jù)庫(kù)庫(kù)】選項(xiàng)項(xiàng),,然然后后展展開(kāi)開(kāi)【可編編程程性性】選項(xiàng)項(xiàng),,如圖圖所所示示。⑵展展開(kāi)開(kāi)【存儲(chǔ)儲(chǔ)過(guò)過(guò)程程】選項(xiàng)項(xiàng),,選選中中要要進(jìn)進(jìn)行行修修改改的的存存儲(chǔ)儲(chǔ)過(guò)過(guò)程程,,右右擊擊鼠鼠標(biāo)標(biāo),,在在彈彈出出的的菜菜單單中中選選擇擇【修改改】命令令,,如圖圖所所示示。⑶在在彈彈出出的的修修改改存存儲(chǔ)儲(chǔ)過(guò)過(guò)程程窗窗口口中中,,直直接接修修改改該該存存儲(chǔ)儲(chǔ)過(guò)過(guò)程程,,修修改改完完畢畢,,保保存存即即可可。。任務(wù)4:重命名存儲(chǔ)過(guò)過(guò)程重命名存儲(chǔ)過(guò)過(guò)程的具體步步驟:①在SQLServerManagementStudio窗口中打開(kāi)【對(duì)象資源管理理器】面板,并展開(kāi)開(kāi)數(shù)據(jù)庫(kù)“SCDB”選項(xiàng)。②展開(kāi)【可編程性】選項(xiàng),選擇【存儲(chǔ)過(guò)程】選項(xiàng)。在存儲(chǔ)儲(chǔ)過(guò)程詳細(xì)列列表中,選中中存儲(chǔ)過(guò)程db.p_Student2,右擊鼠標(biāo),,在彈出的快快捷菜單中,,選擇【重命名】命令,如圖所示。③輸入存儲(chǔ)過(guò)過(guò)程的新名稱稱即可。任務(wù)5:刪除存儲(chǔ)過(guò)程程存儲(chǔ)過(guò)程的刪刪除常用的方方法有兩種,,一種是使用用Transact-SQL語(yǔ)句來(lái)刪除;;另一種是使使用SQLServerManagementStudio中的【對(duì)象資源管理理器】來(lái)進(jìn)行刪除。。1.通過(guò)Transact-SQL語(yǔ)句刪除存儲(chǔ)儲(chǔ)過(guò)程存儲(chǔ)過(guò)程的刪刪除是通過(guò)DROP語(yǔ)句來(lái)實(shí)現(xiàn)的的。任務(wù)5:刪除存儲(chǔ)過(guò)程程2.使用【對(duì)象資源管理理器】刪除存儲(chǔ)過(guò)程程以使用SQLServerManagementStudio窗口來(lái)刪除存存儲(chǔ)過(guò)程p_StudentNum為例,講述在在【對(duì)象資源管理理器】中刪除存儲(chǔ)過(guò)過(guò)程的步驟如如下:(1)在SQLServerManagementStudio窗口中打開(kāi)【對(duì)象資源管理理器】面板,展開(kāi)SCDB選項(xiàng)。(2)展開(kāi)【可編程性】選項(xiàng),右擊【存儲(chǔ)過(guò)程】選項(xiàng),展開(kāi)【存儲(chǔ)過(guò)程】,選中dbo.p_StudentNum,單擊鼠標(biāo)右右鍵,在彈出出的快捷菜單單中,選擇【刪除】命令即可,如圖所示。項(xiàng)目5SCDB中觸發(fā)器的創(chuàng)創(chuàng)建與管理【任務(wù)描述】觸發(fā)器是一種種特殊的存儲(chǔ)儲(chǔ)過(guò)程,在滿滿足某種特定定條件時(shí),觸觸發(fā)器可以自自動(dòng)執(zhí)行,完完成各種復(fù)雜雜的任務(wù)。觸觸發(fā)器通常用用于實(shí)現(xiàn)強(qiáng)制制業(yè)務(wù)規(guī)則和和數(shù)據(jù)完整性性。【任務(wù)目標(biāo)】了解觸發(fā)器的的概念;學(xué)會(huì)會(huì)創(chuàng)建觸發(fā)器器的方法;掌掌握觸發(fā)器的的管理和維護(hù)護(hù)。任務(wù)1:了解觸發(fā)器的的基礎(chǔ)知識(shí)觸發(fā)器是一種種特殊類型的的存儲(chǔ)過(guò)程。。存儲(chǔ)過(guò)程是是通過(guò)存儲(chǔ)過(guò)過(guò)程名被調(diào)用用執(zhí)行的,而而觸發(fā)器主要要是通過(guò)事件件觸發(fā)而被執(zhí)執(zhí)行的。觸發(fā)器(Trigger)不僅能實(shí)現(xiàn)完完整性規(guī)則,,而且能保證證一些較復(fù)雜雜業(yè)務(wù)規(guī)則的的實(shí)施。所謂謂觸發(fā)器就是是一類由事件件驅(qū)動(dòng)的特殊殊過(guò)程,一旦旦由某個(gè)用戶戶定義,任何何用戶對(duì)該觸觸發(fā)器指定的的數(shù)據(jù)進(jìn)行增增加、刪除或或修改操作時(shí)時(shí),系統(tǒng)將自自動(dòng)激活相應(yīng)應(yīng)的觸發(fā)器,,在核心層進(jìn)進(jìn)行集中的完完整性控制。。任務(wù)1:了解觸發(fā)器的的基礎(chǔ)知識(shí)2.觸發(fā)器的優(yōu)點(diǎn)點(diǎn)(1)強(qiáng)制比CHECK約束更復(fù)雜的的數(shù)據(jù)的完整整性;(2)使用自定義義的錯(cuò)誤提示示信息;(3)實(shí)實(shí)現(xiàn)現(xiàn)數(shù)數(shù)據(jù)據(jù)庫(kù)庫(kù)中中多多張張表表的的級(jí)級(jí)聯(lián)聯(lián)修修改改;(4)比比較較數(shù)數(shù)據(jù)據(jù)庫(kù)庫(kù)修修改改前前后后數(shù)數(shù)據(jù)據(jù)的的狀狀態(tài)態(tài);(5)維護(hù)規(guī)范化化數(shù)據(jù)。任務(wù)2:創(chuàng)建觸發(fā)器使用CREATETRIGGER命令創(chuàng)建觸發(fā)發(fā)器,其基本本語(yǔ)法如下:CREATETRIGGERtrigger_nameON{table|view}{FOR|AFTER|INSTEADOF}{[INSERT][,][UPDATE][,][DELETE]}[WITHENCRYPTION]ASIFUPDATE(column_name)[{and|or}UPDATE(column_name)…]sql_statement任務(wù)2:創(chuàng)建觸發(fā)器【例】在SCDB數(shù)據(jù)庫(kù)的Student表上創(chuàng)建一個(gè)個(gè)Student_trigger1的觸發(fā)器,當(dāng)當(dāng)執(zhí)行INSERT操作時(shí),將顯顯示一條“數(shù)數(shù)據(jù)插入成功功!”的消息息。在SQLServerManagementStudio查詢編輯器中中運(yùn)行如下命命令:USESCDBGOCREATETRIGGERStudent_trigger1ONStudentFORINSERTASPRINT'數(shù)據(jù)插入入成功?。?GO任務(wù)3:管理觸觸發(fā)器1.查看觸發(fā)發(fā)器信息息(1)使用系系統(tǒng)存儲(chǔ)儲(chǔ)過(guò)程查查看觸發(fā)發(fā)器信息息系統(tǒng)存儲(chǔ)儲(chǔ)過(guò)程sp_help、sp_helptext、sp_depends和sp_helptrigger分別提供供有關(guān)觸觸發(fā)器的的不同信信息。(2)使用系系統(tǒng)表查查看觸發(fā)發(fā)器信息息用戶可以以通過(guò)查查詢系統(tǒng)統(tǒng)表sysobjects得到觸發(fā)發(fā)器的相相關(guān)信息息。任務(wù)3:管理觸觸發(fā)器2.修改觸發(fā)發(fā)器(1)重命名名觸發(fā)器器使用sp_rename命令修改改觸發(fā)器器的名字字,其語(yǔ)語(yǔ)法格式式為:EXECsp_renameoldname.newname其中,oldname:指觸發(fā)器原原來(lái)的名稱,,newname:指觸發(fā)器的的新名稱。任務(wù)3:管理觸發(fā)器器2.修改觸發(fā)器(2)修改觸發(fā)器器定義修改觸發(fā)器的的具體語(yǔ)法如如下:ALTERTRIGGERtrigger_nameON[table|view]{FOR[AFTER|INSTEADOF]}{[INSERT][,][UPDATE][,][DELETE]}[WITHENCRYPTION]ASIFUPDATE(cotumn_name)[{and|or}UPDATE(column_name)…]sql_statesment任務(wù)3:管理觸發(fā)器器3.禁止和啟動(dòng)觸觸發(fā)器禁用和啟用觸觸發(fā)器的語(yǔ)法法如下:ALTERTABLEtable_name{ENABLE|DISABLE}TRIGGER{ALL|trigger_name[,…n]}任務(wù)3:管理觸發(fā)器器4.刪除觸發(fā)器(1)使用命令DRDPTRIGGER刪除指定的觸觸發(fā)器,具體體語(yǔ)法形式如如下:DROPTRIGGERtrigger_name(2)在【對(duì)象資料管理理器】面板中刪除觸觸發(fā)器按照前面介紹紹的方法找到到相應(yīng)的觸發(fā)發(fā)器并右擊鼠鼠標(biāo),在彈出出的快捷菜單單中,選擇【刪除】命令即可。(3)刪除觸發(fā)器器所在的表時(shí)時(shí),SQLserver2005將自動(dòng)刪除與與該表相關(guān)的的觸發(fā)器。項(xiàng)目6SCDB中游標(biāo)的使用用【任務(wù)描述】由SELECT語(yǔ)句查詢的結(jié)結(jié)果是一個(gè)記記錄集,即由由若干條記錄錄組成的一個(gè)個(gè)完整的單元元。在實(shí)際應(yīng)應(yīng)用中常常需需要從這種記記錄集中逐行行逐條的進(jìn)行行訪問(wèn)。如::在統(tǒng)計(jì)某班班某課學(xué)生成成績(jī)分布的查查詢結(jié)果集中中,用戶往往往希望逐行訪訪問(wèn)記錄,以以便知道每個(gè)個(gè)同學(xué)這門課課的成績(jī)是多多少,據(jù)此判判斷成績(jī)是優(yōu)優(yōu)、良、中、、及格還是不不及格。使用用游標(biāo)便可解解決這類問(wèn)題題。項(xiàng)目6SCDB中游標(biāo)的使用用【任務(wù)目標(biāo)】了解游標(biāo)的概概念及其操作作,了解常用用游標(biāo)的類型型、使用游標(biāo)標(biāo)的步驟,掌掌握游標(biāo)的打打開(kāi)方法,學(xué)學(xué)會(huì)利用游標(biāo)標(biāo)提取數(shù)據(jù)、、修改數(shù)據(jù)和和刪除數(shù)據(jù),,掌握游標(biāo)關(guān)關(guān)閉及釋放方方法。任務(wù)1:了解游標(biāo)的的基礎(chǔ)知識(shí)1.游標(biāo)的定義游標(biāo)(Cursor)是允許用戶能能夠從SELECT語(yǔ)句查詢的結(jié)結(jié)果集中,逐逐條逐行地訪訪問(wèn)記錄,用用戶可以按照照自己的意愿愿逐行地顯示示、修改或刪刪除這些記錄錄的數(shù)據(jù)訪問(wèn)問(wèn)處理機(jī)制。。游標(biāo)可以理理解為數(shù)據(jù)表表記錄逐行訪訪問(wèn)(移動(dòng)當(dāng)前記錄錄和在當(dāng)前記記錄上進(jìn)行訪訪問(wèn))的位置置指針針。任務(wù)1:了解解游標(biāo)標(biāo)的基基礎(chǔ)知知識(shí)1.游標(biāo)的定定義游標(biāo)是一一個(gè)與Transact-SQL的SELECT語(yǔ)句相關(guān)關(guān)聯(lián)的符符號(hào)名,,它使用用戶可逐逐行訪問(wèn)問(wèn)由SQLServer返回的結(jié)結(jié)果集。。游標(biāo)包包括以下下兩個(gè)部部分:(1)游標(biāo)結(jié)結(jié)果集(CursorResultSet):由定義義該游標(biāo)標(biāo)的SELECT語(yǔ)句返回回的行集集合。(2)游標(biāo)位位置(CursorFasitian):指向這這個(gè)行集集合某一一行的當(dāng)當(dāng)前指針針。任務(wù)1:了解游游標(biāo)的基基礎(chǔ)知識(shí)識(shí)2.游標(biāo)的優(yōu)優(yōu)點(diǎn)從游標(biāo)定定義上可可以得到到游標(biāo)的的優(yōu)點(diǎn),,這些優(yōu)優(yōu)點(diǎn)使游游標(biāo)在實(shí)實(shí)際應(yīng)用用中發(fā)揮揮了重要要的作用用:(1)允許程程序?qū)τ捎刹樵冋Z(yǔ)語(yǔ)句SELECT返回的行行集合中中的每一一行執(zhí)行行相同或或不同的的操作,,而不是是對(duì)整個(gè)個(gè)行集合合執(zhí)行同同一個(gè)操操作。(2)提供對(duì)對(duì)基于游游標(biāo)位置置的表中中的行進(jìn)進(jìn)行刪除除和更新新的能力力。(3)游標(biāo)實(shí)實(shí)際上是是作為面面向集合合的數(shù)據(jù)據(jù)庫(kù)管理理系統(tǒng)(DBMS)和面向行行的程序序設(shè)計(jì)之之間的橋橋梁。任務(wù)1:了解游游標(biāo)的基基礎(chǔ)知識(shí)識(shí)3.聲明游標(biāo)標(biāo)聲明游標(biāo)標(biāo)的語(yǔ)法法形式為為:DECLAREcursor_nameCURSORFORselect_statement[FOR{READONLY|UPDATE[OFcolumn_name_list[,……]]}]任務(wù)2:使用游標(biāo)標(biāo)1.打開(kāi)游標(biāo)標(biāo)可使用OPEN語(yǔ)句打開(kāi)開(kāi)游標(biāo),,語(yǔ)法格格式如下下:OPEN{[GLOBAL]cursor_name|@cursor_variable_name}任務(wù)2:使用游標(biāo)標(biāo)2.讀取游標(biāo)標(biāo)中的數(shù)數(shù)據(jù)一旦游標(biāo)標(biāo)被打開(kāi)開(kāi),就可可以從該該游標(biāo)集集合中讀讀取數(shù)據(jù)據(jù)了。從從游標(biāo)中中得到一一行數(shù)據(jù)據(jù)的操作作稱為一一個(gè)FETCH。該FETCH操作包含含如下操操作:FETCHFIRST:獲取游游標(biāo)中的的第一行行數(shù)據(jù)。。如果在打打開(kāi)游標(biāo)標(biāo)之后第第一次執(zhí)執(zhí)行該操操作,則則將獲取取游標(biāo)中中的第一一行數(shù)據(jù)據(jù)。FETCHNEXT:獲取下下一行數(shù)數(shù)據(jù)。如果在打打開(kāi)游標(biāo)標(biāo)之后第第一次執(zhí)執(zhí)行該操操作,則則將獲取取游標(biāo)中中的第一一行數(shù)據(jù)據(jù)。FETCHPRIOR:獲取上上一行數(shù)數(shù)據(jù)。如果在打打開(kāi)游標(biāo)標(biāo)之后第第一次執(zhí)執(zhí)行該操操作,則則得不到到任何數(shù)數(shù)據(jù)。FETCHLAST:獲取游游標(biāo)中最最后行數(shù)數(shù)據(jù)。如果在打打開(kāi)游標(biāo)標(biāo)之后第第一次執(zhí)執(zhí)行該操操作,則則將獲取取游標(biāo)中中的最后后一行數(shù)數(shù)據(jù)。FETCHABSOLUTEn:如果n是一個(gè)正正整數(shù),,則該操操作會(huì)獲獲取游標(biāo)標(biāo)中從第第一行開(kāi)開(kāi)始的n行數(shù)據(jù);;如果n是一個(gè)負(fù)負(fù)整數(shù),,那么該該操作會(huì)會(huì)獲取游游標(biāo)中從從末尾行行向前數(shù)數(shù)的n行數(shù)據(jù)。。如果n是0則不會(huì)獲獲取數(shù)據(jù)據(jù)。FETCHRELATIVEn:相對(duì)上上一個(gè)被被獲取的的行而言言,該操操作將獲獲取該行行前面或或者后面面的n行數(shù)據(jù)。。如果n是正數(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論