SQLServer2005數(shù)據(jù)庫應用項目教程--學習情景5ppt課件_第1頁
SQLServer2005數(shù)據(jù)庫應用項目教程--學習情景5ppt課件_第2頁
SQLServer2005數(shù)據(jù)庫應用項目教程--學習情景5ppt課件_第3頁
SQLServer2005數(shù)據(jù)庫應用項目教程--學習情景5ppt課件_第4頁
SQLServer2005數(shù)據(jù)庫應用項目教程--學習情景5ppt課件_第5頁
已閱讀5頁,還剩98頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、學習情景5:數(shù)據(jù)庫其它對象 的創(chuàng)建與管理.單元描畫 數(shù)據(jù)庫和數(shù)據(jù)表創(chuàng)建終了,并不表示數(shù)據(jù)庫的設計就終了了,用戶往往會對數(shù)據(jù)庫有一些特殊的要求,比如:數(shù)據(jù)庫能否具備數(shù)據(jù)完好性關(guān)系?如何提高數(shù)據(jù)的檢索速度?當需求頻繁執(zhí)行某一特殊義務時,如何防止反復編寫程序代碼?在SQL Server 2005中提供了一系列數(shù)據(jù)庫對象來處理類似以上的問題。本學習情景將重點引見在SCDB數(shù)據(jù)庫中創(chuàng)建和管理這些數(shù)據(jù)庫對象約束、索引、視圖、存儲過程、觸發(fā)器等來處理實踐問題的過程。.學習目的學會數(shù)據(jù)完好性的設計;學會索引的創(chuàng)建與管理;學會視圖的創(chuàng)建與管理;學會存儲過程的創(chuàng)建與管理;學會觸發(fā)器的創(chuàng)建與管理;學會游標的創(chuàng)建與運

2、用;了解游標的運用方法。.工程1 :SCDB中數(shù)據(jù)完好性的設計【義務描畫】 數(shù)據(jù)庫中的數(shù)據(jù)是從外界輸入的,而數(shù)據(jù)的輸入由于種種緣由,會輸入無效或錯誤的信息。那么保證數(shù)據(jù)正確性、一致性和可靠性,就成了數(shù)據(jù)庫系統(tǒng)關(guān)注的重要問題。SQL Server提供了數(shù)據(jù)完好性的設計來處理以上問題,詳細可以經(jīng)過創(chuàng)建約束、默許、規(guī)那么、用戶自定義函數(shù)來處理。.工程1 :SCDB中數(shù)據(jù)完好性的設計【義務目的】 了解數(shù)據(jù)完好性的根本概念;掌握創(chuàng)建和運用約束來保證數(shù)據(jù)的完好性;掌握創(chuàng)建、綁定、解綁定和刪除默許值的方法;掌握創(chuàng)建、綁定、解綁定和刪除規(guī)那么的方法;掌握創(chuàng)建、綁定、運用和刪除用戶自定義完好性的方法。.義務1了

3、解數(shù)據(jù)完好性的根底知識 數(shù)據(jù)的完好性是指存儲在數(shù)據(jù)庫中數(shù)據(jù)的正確性、一致性和可靠性。 根據(jù)數(shù)據(jù)的完好性所作用的數(shù)據(jù)庫對象和范圍的不同,數(shù)據(jù)的完好性分為實體完好性、域完好性、參照完好性和用戶定義完好性4種。.義務1了解數(shù)據(jù)完好性的根底知識1、實體完好性 實體完好性也可稱表的完好性。它用于保證數(shù)據(jù)庫中數(shù)據(jù)表的每一個特定實體都是獨一的,可以經(jīng)過主鍵約束PRIMARY KEY、獨一鍵約束UNIQUE、索引或標識屬性IDENTITY來實現(xiàn)。.義務1了解數(shù)據(jù)完好性的根底知識2、域完好性 域完好性也可稱列完好性,用以指定列的數(shù)據(jù)輸入能否具有正確的數(shù)據(jù)類型、格式以及有效的數(shù)據(jù)范圍。.義務1了解數(shù)據(jù)完好性的根底

4、知識3、參照完好性 參照完好性是保證參照與被參照表中數(shù)據(jù)的一致性。例如,在學生表Student中有學生的學號StudentID且在選課表SC中也有學號StudentID,而且兩個表的學號StudentID值必需一致,假設在輸入過程中出現(xiàn)錯誤且又沒有被系統(tǒng)檢查出來,那么數(shù)據(jù)之間將會呵斥混亂。.義務1了解數(shù)據(jù)完好性的根底知識4、用戶定義完好性 用戶定義完好性允許用戶定義不屬于其他任何完好性分類的特定規(guī)那么。一切的完好性類型都支持用戶定義完好性。用戶定義的完好性主要經(jīng)過運用觸發(fā)器和存儲過程來強迫實施完好性。存儲過程和觸發(fā)器的相關(guān)知識在后續(xù)義務中引見。.義務2: 約束的實現(xiàn)1. 約束的類型 約束是SQ

5、L Server強迫實行的運用規(guī)那么,它經(jīng)過限制列、行和表中的數(shù)據(jù)來保證數(shù)據(jù)的完好性。當刪除表時,表所帶的約束也隨之被刪除。 常用的約束包括CHECK約束、PRIMARY KEY約束、FOREIGN KEY約束、UNIQUE約束和DEFAULT約束。.義務2: 約束的實現(xiàn)1CHECK約束 CHECK約束用于限制輸入一列或多列的值的范圍,經(jīng)過邏輯表達式來判別數(shù)據(jù)的有效性,也就是一個列的輸入內(nèi)容必需滿足CHECK約束的條件,否那么,數(shù)據(jù)無法正常輸入,從而強迫數(shù)據(jù)的域完好性。.義務2: 約束的實現(xiàn)2DEFAULT約束 假設在表中某列定義了DEFAULT約束,用戶在插入新的數(shù)據(jù)行時,假設該列沒有指定數(shù)

6、據(jù),那么系統(tǒng)將默許值賦給該列,當然該默許值也可以是空值NULL。.義務2: 約束的實現(xiàn)3PRIMARY KEY約束 在表中經(jīng)常有一列或多列的組合,其值能獨一標識表中的每一行。這樣的一列或多列成為表的主鍵(Primary Key),經(jīng)過它可以強迫表的實體完好性。一個表只能有一個主鍵,而且主鍵約束中的列不能為空值。.義務2: 約束的實現(xiàn)4FOREIGN KEY約束 外健(Foreign Key)是用于建立和加強兩個表(主表與從表)的一列或多列數(shù)據(jù)之間的銜接,當添加、修正或刪除數(shù)據(jù)時,經(jīng)過參照完好性來保證它們之間的數(shù)據(jù)的一致性。.義務2: 約束的實現(xiàn)5UNIQUE約束 UNIQUE約束用于確保表中的

7、兩個數(shù)據(jù)行在非主鍵中沒有一樣的列值。與PRIMARY KEY約束類似,UNIQUE約束也強迫獨一性,為表中的一列或多列提供實體完好性。但UNIQUE約束用于非主健的一列或多列組合,且一個表可以定義多個UNIQUE約束。另外,UNIQUE約束可以用于定義多列組合,且一個表可以定義多個UNIQUE約束,UNIQUE約束可以用于定義允許空值的列;而PRIMAYR KEY約束只能用在獨一列上,且不能為空值。.義務2: 約束的實現(xiàn)2. 約束的創(chuàng)建、查看與刪除 約束的創(chuàng)建、查看與刪除等操作均可在SQL Server Management Studio的【對象資源管理器】面板中進展,也可運用Transact

8、-SQL語句進展。.義務2: 約束的實現(xiàn)1CHECK約束的創(chuàng)建、查看和刪除 【例】在學生表(Student)中定義學生的性別Sex列只能是“男或“女,從而防止用戶輸入其他的值。要處理此問題,需求用到CHECK約束,使學生性別列的值只需“男或“女兩種能夠,假設用戶輸入其他值,系統(tǒng)均提示用戶輸入無效。.義務2: 約束的實現(xiàn)在SQL Server Management Studio的【對象資源管理器】中選取【數(shù)據(jù)庫】選項下的SCDB數(shù)據(jù)庫。展開數(shù)據(jù)庫SCDB,并展開數(shù)據(jù)庫SCDB目錄下的【表】,右擊“dbo. Student選項,在彈出的快捷菜單中,選擇【設計(G)】命令,翻開【設計表】窗口,選中“

9、Sex,然后,單擊【菜單欄】中的【表設計器】窗口工具欄上的【CHECK約束】命令,如下圖;或者將鼠標放在列“Sex上,右擊鼠標,在彈出的快捷菜單中,選擇【CHECK約束】命令,如下圖。.義務2: 約束的實現(xiàn)在彈出的【CHECK約束】窗口中單擊【添加】按鈕,如下圖。單擊“表達式后面的 按鈕,進入如下圖的CHECK約束表達式的界面,在“表達式文本框中輸入約束表達式“Sex=男 OR Sex=女,如下圖。然后,單擊“確定按鈕。.義務2: 約束的實現(xiàn)在【設計表】窗口單擊 【保管】,即完成了創(chuàng)建并保管CHECK約束的操作。以后用戶輸入數(shù)據(jù)時,假設輸入性別不是“男或“女,系統(tǒng)將報告輸入無效。 要想刪除上面

10、創(chuàng)建的CHECK約束,選擇該約束,右擊鼠標,在彈出的菜單中選擇【刪除】命令,如下圖,然后單擊“封鎖按鈕,即可刪除CHECK約束。.義務2: 約束的實現(xiàn)【例】運用Transact-SQL語句為學生表Student創(chuàng)建CHECK約束。 在SQL Server Management Studio查詢編輯器中運轉(zhuǎn)以下代碼: USE SCDB GO ALTER TABLE Student ADD CONSTRAINT CK_Student CHECK(sex= 男 or sex=女) GO.義務2: 約束的實現(xiàn) 刪除CHECK約束的語句格式如下: DROP CONSTRAINT CHECK constr

11、aint_name【例】刪除創(chuàng)建的約束CK_Student。 USE SCDB GO ALTER TABLE Student DROP CONSTRAINT CK_Student GO.義務3 :默許值的實現(xiàn)1.默許值的概念 與在約束中引見的DEFAULT約束類似,運用默許值也可以實現(xiàn)當用戶在向數(shù)據(jù)庫表中插入新紀錄時,假設沒有給出某列的輸入值,那么有系統(tǒng)自動為該列輸入默許值的功能。 默許值可以是常量、內(nèi)置函數(shù)或數(shù)學表達式。.義務3 :默許值的實現(xiàn)2. 創(chuàng)建默許值 通常創(chuàng)建并運用默許值的步驟為: 創(chuàng)建一個默許值對象。 創(chuàng)建默許的命令如下: CREATE DEFAULT default_name

12、AS constraint_expression.義務3 :默許值的實現(xiàn)將其捆綁到列或用戶自定義數(shù)據(jù)類型上。 綁定默許值的命令如下: EXEC sp_bindefault default_name, table_name.column_name .義務3 :默許值的實現(xiàn)3.刪除默許值通常刪除默許值的步驟為:解除默許值捆綁的列或用戶自定義數(shù)據(jù)類型。解除綁定默許值的命令如下:EXEC sp_unbindefault table_name.column_name 刪除該默許值。詳細的命令語句如下:DROP DEFAULT default_name.義務4 :規(guī)那么的實現(xiàn)1.規(guī)那么的概念 規(guī)那么也是實

13、現(xiàn)數(shù)據(jù)完好性的方法之一,其作用與CHECK約束的部分功能一樣。規(guī)那么可以被綁定到一個列或者用戶定義數(shù)據(jù)類型上,它提供了一種加強列或用戶定義數(shù)據(jù)類型域約束的機制。當其被綁定到列或用戶定義的數(shù)據(jù)類型上時,用來指定允許輸入到列中的數(shù)據(jù),即當用戶向表中插入數(shù)據(jù)時,用來指定該列接受數(shù)據(jù)值的范圍。同時,規(guī)那么與默許一樣在數(shù)據(jù)庫中只需求定義一次,就可以被多次運用。.義務4 :規(guī)那么的實現(xiàn)2. 創(chuàng)建規(guī)那么 和默許值類似,規(guī)那么創(chuàng)建后,需求將其捆綁到列上或用戶自定義數(shù)據(jù)類型上。 創(chuàng)建規(guī)那么的命令如下: CREATE RULE rule_name AS constraint_expression 捆綁規(guī)那么的命令

14、語句如下: EXEC sp_bindrule rule_name, table_name.column_name .義務4 :規(guī)那么的實現(xiàn) 假設在列或數(shù)據(jù)類型上曾經(jīng)捆綁了規(guī)那么,那么當再次向它們捆綁規(guī)那么時,舊規(guī)那么將自動被新規(guī)那么覆蓋,而不會捆綁多條規(guī)那么。 捆綁規(guī)那么可以運用系統(tǒng)存儲過程sp_bindrule,解除規(guī)那么的相關(guān)綁定可以運用系統(tǒng)存儲過程sp_unbindrule。.義務4 :規(guī)那么的實現(xiàn)3.刪除規(guī)那么解除規(guī)那么捆綁的列或用戶自定義數(shù)據(jù)類型。解除綁定默許值的命令如下:EXEC sp_unbindrule table_name.column_name 刪除該規(guī)那么。詳細的命令語句

15、如下:DROP Rule rule_name.義務5 :用戶自定義函數(shù)的實現(xiàn)1. 用戶自定義函數(shù) 為了擴展T- SQL的編程才干,SQL Server 2005除了提供的內(nèi)部函數(shù)外,還允許用戶自定義函數(shù)。用戶可以運用CREATE FUNCTION語句編寫自已的函數(shù),以滿足特殊需求。用戶自定義函數(shù)可用傳送一個或多個參數(shù),并前往一個簡單的數(shù)值。.義務5 :用戶自定義函數(shù)的實現(xiàn)1創(chuàng)建標量用戶自定義函數(shù) 標量用戶自定義函數(shù)前往一個簡單的數(shù)值,如int、char、decimal等,但制止運用text、ntext、image、cursor和timestamp作為前往的參數(shù)。 該函數(shù)的函數(shù)體被封裝在以BEG

16、IN語句開場,END語句終了的范圍內(nèi)。.義務5 :用戶自定義函數(shù)的實現(xiàn)其語法格式如下:CREATE FUNCTION owner_name.function_name(parameter_name scalar_parameter_data_type)RETURN scalar_return_data_typeASBEGIN FUNCTION_bodyRETURN scalar_expressionEND.義務5 :用戶自定義函數(shù)的實現(xiàn)【例】創(chuàng)建一個自定義函數(shù),前往特定課程的平均成果。USE SCDBGOCREATE FUNCTION AvgGrade_SC(CourseID Varchar(

17、20)RETURNS FLOATASBEGINDECLARE AVG_Grade FLOATSET AVG_Grade=(SELECT AVG(Grade)FROM SCWHERE CourseID=CourseID)RETURN AVG_GradeEND.義務5 :用戶自定義函數(shù)的實現(xiàn)2創(chuàng)建直接表值用戶定義函數(shù) 表值函數(shù)前往一個Table型數(shù)據(jù),對直接表值用戶定義函數(shù)而言,前往的結(jié)果只是一系列表值,沒有明確的函數(shù)體。該表是SELECT語句的結(jié)果集。 其語法格式為:CREATE FUNCTION owner_name.function_name(parameter_name scalar_pa

18、rameter_data_type)RETURN TABLEASRETURN (select_statement).義務5 :用戶自定義函數(shù)的實現(xiàn)【例】創(chuàng)建一個函數(shù),要求前往屬于同一個班級的學生的根本信息。在SQL Server ManagementStudio查詢編輯器中運轉(zhuǎn)以下代碼:USE SCDBGOCREATE FUNCTION 學生信息(班級號 Varchar(20)RETURNS TABLEASRETURN (SELECT * FROM Student WHERE ClassID=班級號).工程2: SCDB中索引的創(chuàng)建與管理【義務描畫】 數(shù)據(jù)庫中的索引與書籍中的目錄類似,在一本書

19、中,利用目錄可以快速查找到所需求的信息,無須閱讀整本書,在數(shù)據(jù)庫中,索引使數(shù)據(jù)庫程序無須對整個表進展掃描,就可以在其中找到所需求的數(shù)據(jù)。當創(chuàng)建數(shù)據(jù)庫并優(yōu)化其性能時,應該為數(shù)據(jù)查詢所運用表的列創(chuàng)建索引,建立索引后,SQL Server 2005會根據(jù)索引的有序陳列,經(jīng)過高效的查找算法找到相關(guān)數(shù)據(jù)。因此,對表建立索引,可以加快數(shù)據(jù)的查詢速度和減少系統(tǒng)的呼應時間。.工程2: SCDB中索引的創(chuàng)建與管理【義務目的】 了解索引的根底知識;掌握創(chuàng)建索引的方法;學會管理和維護索引。.義務1:了解索引的根底知識1.索引概述 索引與目錄類似,假設想快速查找而不是逐頁查找指定的內(nèi)容,可以經(jīng)過目錄中章節(jié)的頁號找到其

20、對應的內(nèi)容。類似地,索引經(jīng)過記錄表中的關(guān)鍵值指向表中的記錄,這樣數(shù)據(jù)庫引擎就不用掃描整個表而定位到相關(guān)的記錄。.義務1:了解索引的根底知識1.索引概述 SQL Server中一個表的存儲是由數(shù)據(jù)頁和索引頁兩個部分組成的。數(shù)據(jù)頁用來存放除了文本和圖像數(shù)據(jù)以外的一切與表的某一行相關(guān)的數(shù)據(jù),索引頁包含組成特定索引的列中的數(shù)據(jù)。 .義務1:了解索引的根底知識2.索引的作用 索引是以表列為根底的數(shù)據(jù)庫對象,它保管著表中排序的索引列,并且記錄了索引列在數(shù)據(jù)表中的物理存儲位置,實現(xiàn)了表中數(shù)據(jù)的邏輯排序,其主要目的是提高SQL Server系統(tǒng)的性能,加快數(shù)據(jù)的查詢速度和減少系統(tǒng)的呼應時間。.義務1:了解索引

21、的根底知識3. 建立索引的原那么普通來說,適宜在這些列上創(chuàng)建索引:(1) 在經(jīng)常需求搜索的列上創(chuàng)建索引,可以加快搜索的速度。(2) 在作為主鍵的列上創(chuàng)建索引,強迫該列的獨一性和組織表中數(shù)據(jù)的陳列構(gòu)造。(3) 在經(jīng)常用在銜接的列上創(chuàng)建索引,這些列主要是一些外鍵,可以加快銜接的速度。(4) 在經(jīng)常運用在WHERE子句中的列上創(chuàng)建索引,加快條件的判別速度。(5) 在經(jīng)常需求排序的列上創(chuàng)建索引,由于索引曾經(jīng)排序,這樣查詢可以利用索引的排序,加快排序查詢時間。(6) 在經(jīng)常需求根據(jù)范圍進展搜索的列上創(chuàng)建索引,由于索引曾經(jīng)排序,其指定的范圍是延續(xù)的。.義務1:了解索引的根底知識4. 索引的分類 在Micr

22、osoft SQL Server 2005系統(tǒng)中,有兩種根本類型的索引:聚集索引和非聚集索引。除此之外,還有獨一索引、包含索引、索引視圖、全文索引、XML索引等。.義務1:了解索引的根底知識1聚集索引 索引的構(gòu)造是樹狀構(gòu)造,樹的頂部稱為葉級,樹的其他部分稱為非葉級,樹的根部在非葉級中。同樣,聚集索引的葉級和非葉級構(gòu)成了一個樹狀構(gòu)造。在聚集索引中,表中的數(shù)據(jù)所在的數(shù)據(jù)頁就是聚集索引的葉級,在葉級之外的索引頁是非葉級,如下圖。.義務1:了解索引的根底知識聚集索引在運用中具有以下特點:每一個表只能有一個聚集索引,由于表中數(shù)據(jù)的物理順序只需一個。表中行的物理順序和索引中行的物理順序是一樣的,在創(chuàng)建任何

23、非聚集索引之前創(chuàng)建聚集索引,這是由于聚集索引改動了表中行的物理順序,數(shù)據(jù)行按照一定的順序陳列,并目自動維護這個順序。聚集索引的平均大小大約是數(shù)據(jù)表的百分之五,但是,實踐的聚集索引的大小經(jīng)常根據(jù)索引列的大小變化而變化。在索引的創(chuàng)建過程中,SQL Server暫時運用當前數(shù)據(jù)庫的磁盤空間,當創(chuàng)建聚集索引時,需求120%的表空間的大小,因此,一定要保證有足夠的空間來創(chuàng)建聚集索引。.義務1:了解索引的根底知識2非聚集索引 非聚集索引具有與表的數(shù)據(jù)完全分別的構(gòu)造。運用非聚集索引不用將物理數(shù)據(jù)頁中的數(shù)據(jù)按列排序。 非聚集索引表示行的邏輯順序。在非聚集索引中,葉級沒有包含數(shù)據(jù)行,如下圖。.義務1:了解索引的

24、根底知識3獨一索引 獨一索引確保索引鍵不包含反復的值,因此,表或視圖中的每一行在某種程度上是獨一的。例如,假設在表中的“姓名字段上創(chuàng)建了獨一索引,那么以后輸入的姓名將不能同名。 創(chuàng)建PRIMARY KEY或UNIQUE約束會在表中指定的列上自動創(chuàng)建獨一索引。 聚集索引和非聚集索引都可以是獨一索引。.義務2 :創(chuàng)建索引1、在【對象資源管理器】中創(chuàng)建索引【例】在SCDB數(shù)據(jù)庫中的Student表上創(chuàng)建基于Name列,名為Student_index的不獨一、非聚集索引。 1在SQL Server Management Studio的【對象資源管理器】面板中,選擇要創(chuàng)建索引的表Student,然后展開

25、Student表前面的“+號,選中【索引】選項右擊,在彈出的快捷菜單中選擇“新建索引命令,如下圖。 2選擇【新建索引】命令,進入如圖5.34所示的【新建索引】窗口,在該窗口中列出了Student表上要建立的索引,包含其稱號、是不是聚集索引、能否設置獨一索引等。輸入索引稱號為“Student_index,選擇【非聚集】選項。.義務2 :創(chuàng)建索引 3單擊【添加】按鈕進入如下圖的界面,在列表中選擇需求創(chuàng)建索引的Name列對于復合索引,可以選擇多個組合列。 4單擊【確定】按鈕,SQL Server將完成索引的創(chuàng)建。.義務2 :創(chuàng)建索引2. 運用Transact- SQL語句創(chuàng)建索引創(chuàng)建索引運用CREA

26、TE INDEX語句。其語法如下:CREATE UNIQUE CLUSTERED|NONCLUSTERED INDEX index_nameONtable_name|view_name(column1 ASC|DESC,column2 ASC|DESC, | express)TABLESPACE tablespace_namePCTFREE n1STORAGE (INITIAL n2)NOLOGGINGNOLINENOSORT;.義務3: 查看索引信息1. 在【對象資源管理器】中查看索引信息 在SQL Server Management Studio的【對象資源管理器】面板中,運用與創(chuàng)建索引同

27、樣的方法,翻開如以下圖所示的快捷菜單,選擇“屬性命令,即可看到該索引對應的信息。.義務3: 查看索引信息2.運用系統(tǒng)存儲過程sp_helpindex查看指定表的索引信息【例】運用系統(tǒng)存儲過程sp_helpindex查看SCDB數(shù)據(jù)庫中Student表的索引信息。 在SQL Server Management Studio查詢編輯器中運轉(zhuǎn)如下命令: USE SCDB GO EXEC sp_helpindex Student GO.義務4 :重命名索引1. 在【對象資源管理器】中重命名索引 在SQL Server Management Studio的【對象資源管理器】面板中,運用與創(chuàng)建索引同樣的方

28、法,翻開如以下圖所示的快捷菜單,選擇“重命名命令,然后直接輸入新名即可。.義務4 :重命名索引2. 經(jīng)過Transact-SQL語句來實現(xiàn),更改索引稱號的命令格式如下:EXEC sp_rename table_name old_index_name, new_index_name其中:Table_name:索引所在的表稱號。Old_Index_name:要重新命名的索引的稱號。New_Index_name:新的索引稱號。.義務5 :刪除索引1. 在【對象資源管理器】中刪除索引 在SQL Server Management Studio的【對象資源管理器】面板中展開SCDB數(shù)據(jù)庫,單擊【表】選項

29、展開Student表,再展開【索引】前面的“+號,選中索引名為Student_index的索引,在彈出的快捷菜單中選擇【刪除】命令,進入如下圖的窗口,單擊【確定】按鈕,即可刪除該索引。.2. 運用Transact- SQL語句刪除索引 運用Transact-SQL語句刪除索引的語法格式如下: DROP INDEX Table_name , index_name, Table_name,index_name 其中: Table_name:索引所在的表稱號。 Index_name:要刪除的索引的稱號。.工程3 :SCDB中視圖的創(chuàng)建與管理【義務描畫】 視圖(View)作為一種數(shù)據(jù)庫對象,為用戶提供

30、了一個可以檢索數(shù)據(jù)表中的數(shù)據(jù)的方式。用戶經(jīng)過視圖來閱讀數(shù)據(jù)表中感興趣的部分或全部數(shù)據(jù),而數(shù)據(jù)的物理存儲位置依然在表中?!玖x務目的】 了解視圖的根本概念、作用和特點;掌握創(chuàng)建、修正和刪除視圖的方法并能靈敏運用視圖來簡化表,及簡化數(shù)據(jù)的查詢。.義務1:了解視圖的根底知識1. 視圖的概念 視圖是一個虛擬表,并不表示任何物理數(shù)據(jù),只是用來查看數(shù)據(jù)的窗口而已。視圖與真正的表很類似,也是由一組命名的列和數(shù)據(jù)行所組成,其內(nèi)容由查詢所定義。但是視圖并不是以一組數(shù)據(jù)的方式存儲在數(shù)據(jù)庫中,數(shù)據(jù)庫中只存儲視圖的定義,而不存儲視圖對應的數(shù)據(jù),這些數(shù)據(jù)仍存儲在導出視圖的根本表中。當根本表中的數(shù)據(jù)發(fā)生變化時,從視圖中查詢

31、出來的數(shù)據(jù)也隨之改動。.義務1:了解視圖的根底知識2.運用視圖的優(yōu)點和缺陷 1運用視圖的優(yōu)點數(shù)據(jù)嚴密。對不同的用戶定義不同的視圖,運用戶只能看到與本人有關(guān)的數(shù)據(jù)。簡化查詢操作。為復雜的查詢建立一個視圖,用戶不用輸入復雜的查詢語句,只需針對此視圖做簡單的查詢即可。保證數(shù)據(jù)的邏輯獨立性。對于視圖的操作,例如,查詢只依賴于視圖的定義,當構(gòu)成視圖的根本表需求修正時,只需求修正視圖定義中的子查詢部分,而基于視圖的查詢不用改動。.義務1:了解視圖的根底知識2運用視圖的缺陷 當更新視圖中的數(shù)據(jù)時,實踐上是對根本表的數(shù)據(jù)進展更新?,F(xiàn)實上,當從視圖中插入或者刪除時,情況也是這樣。然而,某些視圖是不能更新數(shù)據(jù)的,

32、這些視圖有如下的特征:有UNION等集合操作符的視圖。有GROUP BY子句的視圖。有諸如AVG,SUM或者MAX等函數(shù)的視圖。運用DISTINCT關(guān)鍵字的視圖。銜接表的視圖(其中有一些例外)。.義務2:創(chuàng)建視圖1.在【對象資源管理器】中創(chuàng)建視圖【例】利用【對象資源管理器】在SCDB數(shù)據(jù)庫中創(chuàng)建一個名為V_Student的視圖,該視圖僅查看Student表中來自“荊門的學生的根本信息。1啟動SQL Server Management Studio,在【對象資源管理器】的樹型目錄中,找到SCDB,展開該數(shù)據(jù)庫。2選擇【視圖】,按一下鼠標右鍵,在彈出的快捷菜單中選擇【新建視圖】命令,出現(xiàn)如下圖。.

33、義務2:創(chuàng)建視圖3在彈出的【添加表】對話框選擇Student表,點擊【添加】按鈕,然后點擊【封鎖】按鈕封鎖【添加表】對話框,如下圖。4在如下圖的對話框的代碼編輯窗格編輯代碼。5點擊工具欄的 ,彈出如下圖的視圖保管對話框,輸入視圖的稱號“V_Student,點擊【確定】按鈕,即完成視圖的創(chuàng)建。.義務2:創(chuàng)建視圖2.運用Transact-SQL語句創(chuàng)建視圖根本語法如下:CREATE VIEW view_nameWITH ENCRYPTIONAS select_statement 其中,WITH ENCRYPTION子句表示對視圖加密。.義務3:顯示視圖的信息1. 在【對象資源管理器】中顯示視圖的信

34、息【例5.29】在SQL Server Management Studio窗口中查看和修正視圖V_Student的定義信息。1在【對象資源管理器】面板中展開【數(shù)據(jù)庫】選項,然后展開【SCDB】選項。2展開【視圖】選項,在視圖列表中可以見到名為V_Student的視圖。假設沒有看到,單擊“刷新按鈕,刷新一次。3右擊V_Student視圖,在彈出的快捷菜單中選擇【設計】命令翻開如下圖窗口,可以在該對話框中直接對視圖的定義進展修正。.義務3:顯示視圖的信息2.經(jīng)過執(zhí)行系統(tǒng)存儲過程sp_helptext查看視圖的信息【例】經(jīng)過執(zhí)行系統(tǒng)存儲過程sp_helptext查看視圖V_Student2的定義信息

35、。 在SQL Server Management Studio查詢編輯器中運轉(zhuǎn)如下命令: USE SCDB GO sp_helptext V_Student2.義務4:重命名視圖【例】將視圖V_Student2重新命名為V_Stu2。1在【對象資源管理器】面板中展開【數(shù)據(jù)庫】選項,然后展開【SCDB】選項。2展開【視圖】選項,在視圖列表中選擇名為V_Student2的視圖,右擊鼠標在彈出的菜單中選擇【重命名】,如下圖,然后將視圖V_Student2重新命名為V_Stu2。.義務4:重命名視圖【例】將視圖V_Stu2重新命名為V_Student2 。在SQL Server Management

36、Studio查詢編輯器中運轉(zhuǎn)如下命令:USE SCDBGOEXEC sp_rename V_Stu2,V_Student2.義務5:視圖的修正和刪除1.視圖的修正 視圖的修正是由ALTER語句來完成的,根本語法如下:ALTER VIEW view_nameWITH ENCRYPTIONASSelect_statement.義務5:視圖的修正和刪除2.視圖的刪除 視圖的刪除是經(jīng)過DROP語句來實現(xiàn)的。【例】運用Transact-SQL語句刪除視圖V_Student。 在SQL Server Management Studio查詢編輯器中運轉(zhuǎn)如下命令:USE SCDBGODROP V_Studen

37、tGO.工程:4 SCDB中存儲過程的創(chuàng)建與管理【義務描畫】 當用戶運用一串Transact-SQL語句訪問效力器上的數(shù)據(jù)時,首先將Transact-SQL語句發(fā)送到效力器,由效力器編譯Transact-SQL語句,并進展優(yōu)化產(chǎn)生查詢的執(zhí)行方案,之后數(shù)據(jù)庫引擎執(zhí)行查詢方案,最終將執(zhí)行結(jié)果發(fā)回客戶程序。每當執(zhí)行一段Transact-SQL語句時,都要反復以上操作。能否可以免去以上反復操作,而是將用戶經(jīng)常執(zhí)行的可以實現(xiàn)某種特殊功能的代碼看成一個集合,當用戶需求運用這段代碼時直接調(diào)用呢?SQL Server提供了存儲過程這一數(shù)據(jù)庫對象來處理以上問題。.工程:4 SCDB中存儲過程的創(chuàng)建與管理【義務目

38、的】 了解存儲過程的根本概念和作用;了解存儲過程的分類;學會創(chuàng)建和執(zhí)行存儲過程的方法;學會管理和維護存儲過程;掌握存儲過程的重編譯處置;學會系統(tǒng)存儲過程和擴展存儲過程的調(diào)用。.義務1 :了解存儲過程的根底知識1.存儲過程的根本概念 存儲過程是在數(shù)據(jù)庫效力器端執(zhí)行的一組Transact-SQL語句的集合,經(jīng)編譯后存放在數(shù)據(jù)庫效力器中。它可以向用戶返前往數(shù)據(jù)、向數(shù)據(jù)庫表中寫入和修正數(shù)據(jù),還可以執(zhí)行系統(tǒng)函數(shù)和管理操作。用戶在編程過程中只需求給出存儲過程的稱號和必需的參數(shù),就可以方便地調(diào)用它們。.義務1 :了解存儲過程的根底知識2. 存儲過程的特點可以將存儲過程的特點歸納如下:1可以在單個存儲過程中執(zhí)

39、行一系列的Transact-SQL語句,也可以在一個存儲過程中調(diào)用其他的存儲過程。2存儲過程是保管在效力器端的曾經(jīng)編譯的Transact-SQL語句,因此比普通的Transact-SQL語句執(zhí)行速度快,同時減少了網(wǎng)絡流量,節(jié)省大量時間和數(shù)據(jù)量。3存儲過程可以運用控制流語句和變量,大大加強了SQL的功能。4存儲過程在提交前會自動檢查語法,防止了一些不用要錯誤的出現(xiàn)。5存儲過程是管理員放在效力器端的Transact-SQL語句,可以設置用戶對存儲過程的運用權(quán)限,從而保證了數(shù)據(jù)庫訪問的平安性。.義務1 :了解存儲過程的根底知識3. 存儲過程的分類 SQL Server 2005提供了三種存儲過程:用

40、戶自定義存儲過程、系統(tǒng)存儲過程和擴展存儲過程。 1用戶自定義存儲過程 用戶自定義存儲過程也就是用戶自行創(chuàng)建并存儲在用戶數(shù)據(jù)庫中的存儲過程,它用于完成用戶指定的某一特定功能(如查詢用戶所需的數(shù)據(jù)信息)。.義務1 :了解存儲過程的根底知識2系統(tǒng)存儲過程 SQL Server 2005不僅提供用戶自定義存儲過程的功能,而且也提供許多可作為工具運用的系統(tǒng)存儲過程。系統(tǒng)存儲過程通常運用“sp_為前綴,主要用于管理SQL Server和顯示有關(guān)數(shù)據(jù)庫及用戶的信息。3擴展存儲過程 擴展存儲過程(Extended Stored Procedures)是用戶可以運用外部程序文語編寫的存儲過程。.義務2 :創(chuàng)建和

41、執(zhí)行存儲過程1.創(chuàng)建和執(zhí)行簡單存儲過程1創(chuàng)建存儲過程的SQL語法格式如下:CREATE PROCEDURE procedure_name WITH ENCRYPTION WITH RECOMPILE ASSq1_statement.義務2 :創(chuàng)建和執(zhí)行存儲過程2執(zhí)行存儲過程 在存儲過程創(chuàng)建勝利后,用戶可以執(zhí)行存儲過程來檢查存儲過程的前往結(jié)果。執(zhí)行存儲過程主要有兩種方法,一是在SQL Server Management Studio的查詢編輯器中運用Transact-SQL語句執(zhí)行;二是在SQL Server Management Studio的對象資源管理器中直接用鼠標操作執(zhí)行存儲過程。.義務

42、2 :創(chuàng)建和執(zhí)行存儲過程 在SQL Server Management Studio查詢編輯器中執(zhí)行存儲過程的操作步驟如下: 翻開SQL Server Management Studio查詢編輯器; 在SQL Server Management Studio查詢編輯器中輸入執(zhí)行存儲過程的Transact-SQL語句,然后單擊執(zhí)行。 執(zhí)行存儲過程的Transact-SQL語句根本語法如下: EXEC procedure_name.義務3: 修正存儲過程1.運用Transact-SQL語句修正存儲過程修正存儲過程是由ALTER語句來完成的,其語法如下:ALTER PROCEDURE procedu

43、re_ nameWITH ENCRYPTIONWITH RECOMPILEASSql_statement.義務3: 修正存儲過程2.在【對象資源管理器】面板中修正存儲過程經(jīng)過SQL Server Management Studio中的【對象資源管理器】來修正存儲過程的詳細步驟如下:展開SQL Server Management Studio【對象資源管理器】中的【數(shù)據(jù)庫】選項,然后展開【可編程性】選項,如下圖。展開【存儲過程】選項,選中要進展修正的存儲過程,右擊鼠標,在彈出的菜單中選擇【修正】命令,如下圖。在彈出的修正存儲過程窗口中,直接修正該存儲過程,修正終了,保管即可。.義務4 :重命名存

44、儲過程重命名存儲過程的詳細步驟:在SQL Server Management Studio窗口中翻開【對象資源管理器】面板,并展開數(shù)據(jù)庫“SCDB 選項。展開【可編程性】選項,選擇【存儲過程】選項。在存儲過程詳細列表中,選中存儲過程db.p_Student2,右擊鼠標,在彈出的快捷菜單中,選擇【重命名】命令,如下圖。輸入存儲過程的新稱號即可。.義務5 :刪除存儲過程 存儲過程的刪除常用的方法有兩種,一種是運用Transact-SQL語句來刪除;另一種是運用SQL Server Management Studio中的【對象資源管理器】來進展刪除。1.經(jīng)過Transact-SQL語句刪除存儲過程存

45、儲過程的刪除是經(jīng)過DROP語句來實現(xiàn)的。.義務5 :刪除存儲過程2.運用【對象資源管理器】刪除存儲過程以運用SQL Server Management Studio窗口來刪除存儲過程p_StudentNum為例,講述在【對象資源管理器】中刪除存儲過程的步驟如下: (1)在SQL Server Management Studio窗口中翻開【對象資源管理器】面板,展開SCDB選項。 (2)展開【可編程性】選項,右擊【存儲過程】選項,展開【存儲過程】,選中dbo.p_StudentNum,單擊鼠標右鍵,在彈出的快捷菜單中,選擇【刪除】命令即可,如下圖。.工程5 SCDB中觸發(fā)器的創(chuàng)建與管理【義務描畫

46、】觸發(fā)器是一種特殊的存儲過程,在滿足某種特定條件時,觸發(fā)器可以自動執(zhí)行,完成各種復雜的義務。觸發(fā)器通常用于實現(xiàn)強迫業(yè)務規(guī)那么和數(shù)據(jù)完好性?!玖x務目的】了解觸發(fā)器的概念;學會創(chuàng)建觸發(fā)器的方法;掌握觸發(fā)器的管理和維護。.義務1 :了解觸發(fā)器的根底知識 觸發(fā)器是一種特殊類型的存儲過程。存儲過程是經(jīng)過存儲過程名被調(diào)用執(zhí)行的,而觸發(fā)器主要是經(jīng)過事件觸發(fā)而被執(zhí)行的。 觸發(fā)器(Trigger)不僅能實現(xiàn)完好性規(guī)那么,而且能保證一些較復雜業(yè)務規(guī)那么的實施。所謂觸發(fā)器就是一類由事件驅(qū)動的特殊過程,一旦由某個用戶定義,任何用戶對該觸發(fā)器指定的數(shù)據(jù)進展添加、刪除或修正操作時,系統(tǒng)將自動激活相應的觸發(fā)器,在中心層進展

47、集中的完好性控制。.義務1 :了解觸發(fā)器的根底知識2. 觸發(fā)器的優(yōu)點1強迫比CHECK約束更復雜的數(shù)據(jù)的完好性;2運用自定義的錯誤提示信息;3實現(xiàn)數(shù)據(jù)庫中多張表的級聯(lián)修正;4比較數(shù)據(jù)庫修正前后數(shù)據(jù)的形狀;5維護規(guī)范化數(shù)據(jù)。.義務2: 創(chuàng)建觸發(fā)器運用CREATE TRIGGER命令創(chuàng)建觸發(fā)器,其根本語法如下:CREATE TRIGGER trigger_ nameON table | viewFOR | AFTER | INSTEAD OF INSERT,UPDATE,DELETEWITH ENCRYPTIONASIF UPDATE (column_name)and | or UPDATE (c

48、olumn_name)sql _statement.義務2: 創(chuàng)建觸發(fā)器【例】在SCDB數(shù)據(jù)庫的Student表上創(chuàng)建一個Student _trigger1的觸發(fā)器,當執(zhí)行INSERT操作時,將顯示一條“數(shù)據(jù)插入勝利!的音訊。在SQL Server Management Studio查詢編輯器中運轉(zhuǎn)如下命令:USE SCDBGOCREATE TRIGGER Student_trigger1ON StudentFOR INSERTASPRINT 數(shù)據(jù)插入勝利!GO.義務3 :管理觸發(fā)器1.查看觸發(fā)器信息1運用系統(tǒng)存儲過程查看觸發(fā)器信息 系統(tǒng)存儲過程sp_help、sp_helptext、sp_d

49、epends和sp_helptrigger分別提供有關(guān)觸發(fā)器的不同信息。2運用系統(tǒng)表查看觸發(fā)器信息 用戶可以經(jīng)過查詢系統(tǒng)表sysobjects得到觸發(fā)器的相關(guān)信息。.義務3 :管理觸發(fā)器2.修正觸發(fā)器1重命名觸發(fā)器運用sp_rename命令修正觸發(fā)器的名字,其語法格式為:EXEC sp_rename oldname.newname其中,oldname:指觸發(fā)器原來的稱號,newname:指觸發(fā)器的新稱號。.義務3 :管理觸發(fā)器2.修正觸發(fā)器2修正觸發(fā)器定義修正觸發(fā)器的詳細語法如下:ALTER TRIGGER trigger_nameON table | viewFOR AFTER | INST

50、EAD OF INSERT, UPDATE , DELETEWITH ENCRYPTIONASIF UPDATE(cotumn_name)and | or UPDATE(column_name)sql_statesment.義務3 :管理觸發(fā)器3.制止和啟動觸發(fā)器禁用和啟用觸發(fā)器的語法如下:ALTER TABLE table_nameENABLE | DISABLE TRIGGERALL | trigger_name,n.義務3 :管理觸發(fā)器4. 刪除觸發(fā)器1運用命令DRDP TRIGGER刪除指定的觸發(fā)器,詳細語法方式如下:DROP TRIGGER trigger_name2在【對象資料管理器】面板中刪除觸發(fā)器按照前面引見的方法找到相應的觸發(fā)器并右擊鼠標,在彈出的快捷菜單中,選擇【刪除】命令即可。3刪除觸發(fā)器所在的表時,SQL server 2005將自動刪除與該表相關(guān)的觸發(fā)器。.工程6 SCDB中游標的運用【義務描畫】 由SELECT語句查詢的結(jié)果是一個記錄集,即由假設干條記錄組

溫馨提示

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

評論

0/150

提交評論