版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、2022/10/111第7章 SQL Server2000數據庫管理系統(tǒng)本章內容SQL Server2000管理工具7.2數據庫的創(chuàng)建與管理7.37.4數據查詢7.51.1 SQL Server2000概述7.1 存儲過儲和觸發(fā)器7.6數據表的創(chuàng)建與管理 數據庫的備份和恢復7.7 SQL Server程序設計7.8 SQL Server是由Microsoft公司開發(fā)和銷售的一個功能強大的關系型數據庫管理系統(tǒng),能夠處理大量的數據和管理眾多的并發(fā)用戶,保證數據的完整性,并提供許多高級管理和數據分布能力。SQL Server與Windows系列的操作系統(tǒng)完美兼容,且易于安裝、部署和使用,可運行在臺式
2、機、筆記本電腦上,也可運行在多處理器計算機上,提供了數據倉庫功能;SQL Server支持遠程管理,提供了豐富的數據庫編程能力,還提供了很多外圍工具來幫助用戶對數據庫進行管理,用戶甚至無需直接執(zhí)行任何SQL 語句就可以完成數據庫的創(chuàng)建、數據表的創(chuàng)建、數據的備份/恢復等工作。 本章主要介紹SQL Server 2000數據庫管理系統(tǒng)的主要功能及各種管理工具的使用方法。SQL Server 2000是Microsoft公司于2000年推出的數據庫管理系統(tǒng),該版本繼承了SQL Server 7.0版本的優(yōu)點,同時又增加了許多更先進的功能,具有使用方便、可伸縮性好以及與相關軟件集成程度高等優(yōu)點,可跨越
3、Microsoft Windows 2000、Microsoft Windows XP等多種平臺使用。SQL Server 2000為用戶的Internet應用提供了完善的數據管理和數據分析解決方案,極大地方便了用戶電子商務和數據倉庫應用的開發(fā)。SQL Server 2000還提供了對XML和HTTP的全方位的支持。根據不同用戶群的使用需求,Microsoft軟公司發(fā)行了4種SQL Server 2000版本,分別為企業(yè)版、標準版、個人版以及開發(fā)者版。企業(yè)版(Enterprise Edition)支持SQL Server 2000的所有特性,可作為大型Web站點、企業(yè)OLTP(聯機事務處理)以
4、及數據倉庫系統(tǒng)等的產品數據庫服務器;標準版(Standard Edition)用于小型的工作組或部門;個人版(Personal Edition)用于單機系統(tǒng)或客戶機;開發(fā)者版(Developer Edition)用于程序員開發(fā)應用程序,這些程序需要SQL Server 2000作為數據存儲設備。7.1 SQL Server 2000概述此外,SQL Server 2000還有桌面引擎(Desktop Engine)和Windows CE版,用戶可以根據實際情況選擇所要安裝的SQL Server 2000版本。SQL Server 2000不同的版本,對操作系統(tǒng)的要求不完全相同。企業(yè)版必須運行于
5、安裝Windows 2000 Advanced Server以及更高版本的操作系統(tǒng)下;標準版必須運行于安裝Windows 2000 Server以及更高版本的操作系統(tǒng)下;個人版可在多種操作系統(tǒng)下運行,如可運行于Windows XP或Windows 2000的服務器版或工作站版的操作系統(tǒng)下。7.1 SQL Server 2000概述(續(xù))7.2 SQL Server 2000管理工具簡介 SQL Server 2000提供了一整套的管理工具和實用程序,使用這些工具和程序,可以設置和管理SQL Server,進行數據庫管理和備份,并保證數據的安全性和一致性。安裝SQL Server 2000后,可
6、以從開始菜單中找到服務管理器、企業(yè)管理器、查詢分析器和數據導入/導出工具等程序項。2022/10/1177.2.1 服務管理器SQL Server服務管理器(SQL Server Service Manager)是在服務器端實際工作時最有用的實用程序,其界面如圖7-1所示,用于啟動、暫停、繼續(xù)和停止SQL Server、SQL Server Agent以及微軟分布式事務協調器(Microsoft Distributed Transaction Coordinator,MSDTC)服務。用戶對數據庫執(zhí)行任何操作之前必須啟動SQLServer,而使用SQL Server Service Manag
7、er是啟動SQL Server數據庫服務器最簡單的方法,選擇“開始”“程序”Microsoft SQL Server“服務管理器”命令即可啟動服務管理器。圖7-1 “SQL Server服務管理器”窗口7.2 SQL Server 2000管理工具簡介(續(xù)1)7.2.2 企業(yè)管理器7.2 SQL Server 2000管理工具簡介(續(xù)2)企業(yè)管理器(Enterprise Manager)是SQL Server中最重要和最常用的一個管理工具,不僅能夠配置系統(tǒng)環(huán)境和管理SQL Server,而且由于它能夠以層疊列表的形式來顯示所有的SQL Server對象,因而可以完成所有SQL Server對象
8、的建立與管理。利用企業(yè)管理器可以完成的操作有:管理SQL Server服務器;創(chuàng)建與管理數據庫;創(chuàng)建與管理表、視圖、存儲過程、觸發(fā)程序、角色、規(guī)則、默認值等數據庫對象,以及用戶定義的數據類型;備份數據庫和事務日志、恢復數據庫;復制數據庫;設置任務調度;設置警報;提供跨服務器的拖放控制操作;管理用戶賬戶;建立Transact-SQL命令語句,以及管理和控制SQL Mail??梢酝ㄟ^選擇“開始”“程序”Microsoft SQL Server“企業(yè)管理器”命令,啟動企業(yè)管理器,如圖7-2所示。圖7-2 企業(yè)管理器界面選擇“開始”“程序”Microsoft SQL Server“查詢分析器”命令可啟
9、動查詢分析器(Query Analyzer),彈出如圖7-3所示的“連接到SQL Server”對話框,在該對話框中設置指定連接的SQL Server服務器和正確的身份驗證方式,單擊“確定”按鈕,即可打開“SQL Server查詢分析器”窗口,如圖7-4所示。 圖7-3 “連接到SQL Server”對話框 7-4 “SQL查詢分析器”窗口7.2.3 查詢分析器7.2 SQL Server 2000管理工具簡介(續(xù)3)查詢分析器是一個圖形化的管理工具,用于輸入和執(zhí)行Transact-SQL語句,并能迅速查看這些語句的結果,以分析和處理數據庫中的數據。這是一個非常實用的工具,對掌握SQL語言,深
10、入理解SQL Server的管理工作有很大的幫助。查詢分析器窗口由以下幾部分組成:窗口上部是菜單欄和工具欄,可以根據需要在其中選擇執(zhí)行相關命令;窗口左面是對象瀏覽器窗口;窗口右面是查詢窗口;查詢窗口下面是查詢執(zhí)行結果的顯示窗口。在查詢窗口中輸入SQL語句后,單擊工具欄中的“執(zhí)行查詢”按鈕 或按F5鍵,即可立即執(zhí)行輸入的SQL語句。語句的執(zhí)行結果將顯示在結果窗口中。很多時候,需要在SQL Server數據庫與其他類型的數據庫或電子表格之間進行數據交換,因此SQL Server系統(tǒng)必須能夠實現SQL Server數據庫與其他類型的數據庫或電子表格之間的數據交換。這樣,用戶可以將自己的SQL Ser
11、ver數據庫中的數據轉儲到其他類型的數據庫系統(tǒng)或電子表格中;同樣,也可以把其他類型數據庫或電子表格中的數據轉儲到SQL Server數據中來。通過這樣的數據轉換操作,可以實現數據庫資源的共享,減少因為數據庫類型的變化而造成的大量數據重復輸入等不必要的操作。SQL Server數據庫可以實現與Access、Oracle以及Excel類型的數據的傳輸操作。 7.2 SQL Server2000管理工具簡介(續(xù)4)7.2.4 數據導入/導出工具 SQL Server系統(tǒng)為了滿足用戶對不同數據庫類型之間的數據傳輸的需求,提供了數據傳輸服務(Data Transformation Services,DT
12、S)導入、導出向導,導入數據是從外部數據源中檢索數據,并將數據插入到SQL Server表的過程;導出數據是將SQL Server實例中的數據提取為用戶指定格式的數據的過程。DTS導入和導出向導包含了所有的DTS工具,提供了在OLE DB數據源之間復制數據的最簡捷的方法。啟動DTS導入/導出向導的方法主要有兩種:方法一:打開企業(yè)管理器,選中指定的服務器,然后選擇“工具”“向導”命令,打開“選擇向導”對話框。在此對話框中選擇“數據轉換服務”選項下的DTS導入向導或DTS導出向導,即可啟動相關的向導。方法二:打開企業(yè)管理器,右擊服務器,在彈出的快捷菜單中選擇“所有任務”菜單項下的導入數據或導出數據
13、選項,也可以啟動相關的向導。7.3 數據庫的創(chuàng)建與管理數據庫的存儲結構分為邏輯存儲結構和物理存儲結構兩種。數據庫的邏輯存儲結構指數據庫由哪些性質的信息組成。SQL Server的數據不只是存儲數據,還存儲所有與數據處理操作相關的信息。SQL Server的數據庫由表、視圖、索引等各種不同的數據庫對象組成,分別用來存儲特定信息并支持特定功能,構成數據庫的邏輯存儲結構。數據庫的物理存儲結構則是討論數據庫文件如何在磁盤上存儲。數據庫在磁盤上是以文件為單位存儲的,在SQL Server 2000中,數據庫由數據文件和日志文件組成,一個數據庫至少應包含一個主數據文件和一個日志文件。每個文件都有操作系統(tǒng)使
14、用的物理文件名和數據庫管理系統(tǒng)使用的邏輯文件名。數據文件是SQL Server用于存儲用戶輸入數據庫的所有信息和在數據庫中建立的所有對象的文件。這些文件可以按所設置的格式,根據需要變大或縮小。日志文件是SQL Server用來存儲數據庫事務日志的文件。事務日志用來維護數據庫的一致性并保證對數據庫的所有修改要么被完整地執(zhí)行,要么被取消。如果服務器在意外事件中被破壞,SQL Server將檢查事務日志來保證用戶所有的數據修改都是完整的。7.3 數據庫的創(chuàng)建與管理 (續(xù)1)7.3.1 SQL Server數據庫的文件組成 SQL Server數據庫由主數據文件、輔助數據文件和日志文件組成。(1)主數
15、據文件。 主數據文件用于存儲數據庫數據,并包含數據庫的啟動信息,是數據庫和其他數據庫文件的起點,并以此起點為基礎指向數據庫中的其余文件。每個數據庫有且只有一個主數據文件。主數據文件一般使用.mdf作為擴展名。(2)輔助數據文件(次數據文件)。 輔助數據文件用于存儲不能置于主數據文件中的所有數據。一個數據庫可以沒有輔助數據文件,也可以有多個輔助數據文件。如果數據太多而主數據文件存放不下,就需要輔助數據文件。輔助數據文件可以與主數據文件位于同一磁盤上,也可以位于不同磁盤上。輔助數據文件的擴展名是.ndf。(3)日志文件。 日志文件用于存儲對數據庫中數據的操作記錄。每個數據庫都必須至少有一個日志文件
16、。一旦數據庫遭到破壞,則可以利用日志文件來恢復數據庫中的數據。日志文件的擴展名是.ldf。1SQL Server數據庫的組成 為了更好地實現數據庫文件的組織,SQL Server 2000開始引入了文件組的概念。文件組允許多個數據庫文件組成一個組,并對它們進行整體管理。比如,可以將3個數據文件(data1.mdf、data2.mdf和data3.mdf)分別創(chuàng)建在3個盤上,這3個文件組成文件組fgroup1,創(chuàng)建表時,就可以指定一個表創(chuàng)建在文件組fgroup1上。這樣該表的數據就可以分布在3個盤上,在對該表執(zhí)行查詢時,可以并行操作,大大提高了查詢效率。與數據文件一樣,文件組也分為主文件組(Pr
17、imary File Group)和次文件組(Secondary File Group)。一個文件只能存在于一個文件組中,一個文件組也只能被一個數據庫使用。主文件組包含主數據庫文件和未指定組的其他文件。在次文件組中,可以指定一個默認文件組,那么在創(chuàng)建數據庫對象時,如果沒有指定將其放在哪一個文件組中,就會將其放在默認文件組中。如果沒有指定默認文件組,則主文件組為默認文件組。SQL Server 2000數據庫的文件和文件組必須遵循以下規(guī)則:(1)一個文件和文件組只能被一個數據庫使用。(2)一個文件只能屬于一個文件組。(3)數據文件和日志文件不能同時屬于同一文件或文件組。(4)日志文件不能屬于文件
18、組。2文件組(File Group)在定義數據庫的數據文件和日志文件時,可以指定如下屬性:(1)文件名及其位置。每個數據庫的數據文件和日志文件都有一個邏輯名稱以及文件的物理存放位置。一般情況下,為了獲得更好的性能,建議將文件分散存儲在多個磁盤上。(2)文件大小??梢灾付總€數據文件和日志文件的大小,一般以MB為單位。(3)增長方式。如果需要,可以指定文件是否自動增長,該選項的默認配置為自動增長,即當數據庫空間用完后,系統(tǒng)自動擴大數據庫的空間。這樣可以防止由于數據庫空間用完所造成的不能插入新數據或不能進行數據操作的錯誤。(4)最大大小。指定文件的最大大小,默認是大小無限制。3數據庫文件的屬性4S
19、QL Server 2000的默認數據庫當SQL Server 2000成功安裝后,系統(tǒng)會自動創(chuàng)建Master、Model、Msdb和Tempdb 4個系統(tǒng)數據庫以及Pubs和Northwind 2個示例數據庫。SQL Server 2000的4個系統(tǒng)數據庫記錄了所有的登錄賬號、系統(tǒng)配置以及調度報警和任務,并記錄操作符等。系統(tǒng)數據庫是運行SQL Server 的基礎,所以在設計、管理SQL Server 數據庫時,一定要注意這4個系統(tǒng)數據庫的存在,不能使自己的數據庫與這4個系統(tǒng)數據庫相沖突。SQL Server系統(tǒng)成功和穩(wěn)定運行的保證是其系統(tǒng)數據庫中的信息的完整性,所以任何用戶都不允許直接修改
20、SQL Server 系統(tǒng)數據庫中的任何信息,并且注意對SQL Server 系統(tǒng)數據庫進行備份和安全保障等工作。(1)Master數據庫。Master數據庫記錄了SQL Server系統(tǒng)的所有系統(tǒng)信息,主要包括所有的登錄信息、系統(tǒng)設置信息、SQL Server初始化信息、系統(tǒng)中其他系統(tǒng)數據庫和用戶數據庫的相關信息,如主文件的存放位置等。該數據庫一旦受到損壞(例如無意中被用戶修改或刪除、存儲介質出現問題等),有可能導致SQL Server 無法運行,所以用戶一般不要修改它,并應經常進行備份。(2)Model數據庫。Model數據庫是建立新數據庫的模板,包含了將復制到每個新建數據庫中的系統(tǒng)表。執(zhí)
21、行創(chuàng)建數據庫的語句CREATE DATABASE時,服務器總是通過復制Model數據庫建立新數據庫的前面部分,新數據庫的后面部分被初始化成空白頁面,用來供用戶日后存放數據。通常Model數據庫中包含數據庫的最小容量、數據庫選項設置、常用的數據庫對象(如用戶自定義的數據類型、函數規(guī)則和默認值)等。(3)Msdb數據庫。SQL Server企業(yè)管理器和SQL Server Agent使用Msdb數據庫來存儲計劃信息以及與備份和還原相關的信息,尤其是SQL Server Agent需要使用Msdb數據庫來執(zhí)行安排工作、警報與記錄操作等操作。(4)Tempdb數據庫。Tempdb數據庫是系統(tǒng)的臨時存儲
22、空間,主要存儲系統(tǒng)運行中的所有臨時表格、數據和存儲過程。Tempdb數據庫是一個全局資源,沒有專門的權限限制,允許所有可以連接上SQL Server服務器的用戶使用。在Tempdb數據庫中存放的所有數據信息都是臨時的,每當連接斷開時,這些信息都將自動丟棄。所以每次啟動SQL Server時,Tempdb數據庫都需要臨時創(chuàng)建,此時的Tempdb數據庫為一個空的數據庫。當臨時存儲的數據量急劇增加時,Tempdb數據庫可以自動增大。(5)Pubs和Northwind示例數據庫。這是兩個供用戶學習的示例數據庫,可以作為SQL Server的學習工具。Pubs數據庫存儲了一個虛構的圖書出版公司的基本情況
23、,其中包含了大量的樣本表和樣本數據,如出版物(titles)、出版者(publishers)、書店(stores)、作者(authors)、員工(employee)等表格,還有一些記錄各表之間狀態(tài)關系的表,如titleauthor表記錄哪位作者寫了哪些書等。Northwind數據庫是從SQL Server 2000開始建立的示例數據庫。該數據庫是模仿一個貿易公司建立的數據庫模型(該公司名叫Northwind,專門進出口世界各地風味食品)。Northwind數據庫包含了與公司經營有關的大多數數據,如運輸商(Shippers)、供貨商(Suppliers)、雇員(Employees)、顧客(Cus
24、tomers)等數據表,以及一些記錄各表之間狀態(tài)關系的表等。SQL Server經常訪問系統(tǒng)目錄,檢索系統(tǒng)正常運行所需的必要信息。在SQL Server和其他關系數據庫系統(tǒng)中,所有的系統(tǒng)表與基表都有相同的邏輯結構,這樣,用于檢索和修改基表信息的Transact-SQL語句,同樣可以用于檢索和修改系統(tǒng)表中的信息。但是應該注意的是,如果使用DDL語句的INSERT、UPDATE和DELETE語句來修改系統(tǒng)信息,對整個系統(tǒng)是非常危險的,應使用系統(tǒng)的存儲過程來代替。下面簡要介紹幾個重要的系統(tǒng)表。(1)sysobiects表。SQL Server的主系統(tǒng)表,出現在每個數據庫中,對每個數據庫對象都含有一行
25、記錄。(2)syscolumns表。出現在master數據庫和每個用戶自定義的數據庫中,對基表或者視圖的每個列和存儲過程中的每個參數含有一行記錄。(3)sysindexes表。出現在master數據庫和每個用戶自定義的數據庫中,對每個索引和沒有聚簇索引的每個表含有一行記錄,它還對包括文本/圖像數據的每個表含有一行記錄。(4)sysusers表。出現在master數據庫和每個用戶自定義的數據庫中,對整個數據庫中的每個SQL Server用戶或者SQL Server角色含有一行記錄。(5)sysdatabases表,只出現在master數據庫中,對SQL Server系統(tǒng)上的每個系統(tǒng)數據庫和用戶自
26、定義的數據庫含有一行記錄。(6)sysdepends表。出現在master數據庫和每個用戶自定義的數據庫中,對表、視圖和存儲過程之間的每個依賴關系含有一行記錄。5系統(tǒng)表簡介7.3.2 數據庫的創(chuàng)建7.3 數據庫的創(chuàng)建與管理 (續(xù)2)利用企業(yè)管理器創(chuàng)建一個學生學籍管理數據庫Student的具體步驟如下:(1)如果還沒有啟動SQL Server服務,應先運行Microsoft SQL Server程序組中的服務管理器,啟動Microsoft SQL Server,然后啟動企業(yè)管理器。(2)在控制臺上依次單擊Microsoft SQL Server、“SQL Server組”和要創(chuàng)建數據庫的服務器左
27、邊的“+”號,展開如圖7-2所示的樹形目錄。SQL Server 2000提供兩種建立數據庫的方法:企業(yè)管理器和Transact-SQL語句。1使用企業(yè)管理器創(chuàng)建數據庫圖7-5 “數據庫屬性”對話框的“常規(guī)”選項卡(3)右擊“數據庫”選項,在彈出的菜單中選擇“新建數據庫”命令,彈出如圖7-5所示的“數據庫屬性”對話框。在該對話框中共有3個選項卡:“常規(guī)”、“數據文件”和“事務日志”。在“常規(guī)”選項卡的“名稱”文本框中輸入要創(chuàng)建的數據庫的名稱,這里輸入“Student”。(4)選擇“數據文件”選項卡,找到文件名為Student_Data的一行,可以看到已給出默認的主數據文件名(即Student_
28、Data)、存儲位置、初始大?。?MB)。在“文件屬性”中給出默認的文件自動增長方式及最大文件大小,可根據需要對默認數據進行修改。(5)如果需要使用輔助數據文件,則可在“文件名”列表框的第二行輸入另一個文件名,如圖7-6所示,系統(tǒng)自動給出該文件的擴展名(.ndf)、默認存儲位置和初始大小,可根據需要修改。(6)選擇“事務日志”選項卡,找到文件名為Student_Log的一行,指定存放日志文件的位置、初始容量大小等屬性,并進行事務日志文件大小、擴充方式和容量限制的設置。(7)設置完成之后,單擊“確定”按鈕。以上創(chuàng)建了一個名為Student的數據庫,并為它創(chuàng)建了一個主數據文件和一個日志文件。此時,
29、在企業(yè)管理器的“數據庫”目錄下可以看到新建的數據庫。圖7-6 “數據庫屬性”對話框的“數據文件”選項卡U注意:數據庫的名稱不超過128個字符,且不區(qū)分大小寫。理論上一個服務器可以管理32767個數據庫。2使用Transact-SQL語句創(chuàng)建數據庫在SQL Server 2000的查詢分析器中使用Transact-SQL語句創(chuàng)建數據庫的方法如下:啟動查詢分析器,在其右邊的“查詢”窗口中輸入創(chuàng)建數據庫的SQL語句,然后單擊菜單欄中的“執(zhí)行查詢”按鈕即可創(chuàng)建數據庫。Transact-SQL語句創(chuàng)建數據庫的一般格式為:CREATE DATABASE 數據庫名 ON PRIMARY ( , n ) ,
30、n LOG ON ( ,):=( NAME = 邏輯文件名,FILENAME = 操作系統(tǒng)下的物理路徑和文件名,SIZE = 文件初始大小 ,MAXSIZE = 文件最大大小 | UNLIMITED ,FILEGROWTH = 增量值 ) , n 上述語法中各部分的含義為:(1)數據庫名在服務器中必須是唯一的,并且符合標識符的規(guī)則。(2)ON關鍵字表示數據庫是根據后面的參數來創(chuàng)建的,用來定義主數據文件和輔助數據文件。ON后跟以逗號分隔的數據文件定義列表和文件組。(3)PRIMARY用來指定主文件。一個數據庫只能有一個主文件,默認情況下,如果不指定PRIMARY關鍵字,則在命令中列出的第一個文件
31、將被默認為主文件。(4)n是一個占位符,表示可為新數據庫指定多個文件。(5)LOG ON子句用來定義存儲數據庫日志的事務日志文件。(6)NAME用于指定數據庫文件的邏輯文件名。(7)FILENAME用于指定數據庫文件在操作系統(tǒng)下的物理路徑和文件名。(8)SIZE用于指定數據庫文件的初始大小。(9)MAXSIZE用于指定數據庫文件的最大大小,單位為MB、KB、GB、TB或 %,默認為MB。省略此項表示數據庫文件按10%增長;0值表示不自動增長。(10)FILEGROWTH用于指定數據庫文件的增加量,單位為MB、KB或%,默認為KB。省略此項表示文件大小不自動增長。在使用SQL語句創(chuàng)建數據庫時,最
32、簡單的情況是可以省略所有的選項,用戶只要提供一個數據庫名即可,這時系統(tǒng)會按選項的默認值創(chuàng)建數據庫?!纠?-1】 用CREATE DATABASE語句創(chuàng)建Student數據庫,所有參數均取默認值。程序清單如下:CREATE DATABASE Student系統(tǒng)輸出結果如下:CREATE DATABASE 進程正在磁盤 Student 上分配 0.75 MB 的空間。CREATE DATABASE 進程正在磁盤 Student_log 上分配 0.49 MB 的空間。結果如圖7-7所示。圖7-7 使用SQL語句創(chuàng)建數據庫& 說明:這是最簡單的創(chuàng)建數據庫的命令。此語句表示在默認位置創(chuàng)建數據庫的主文件
33、Student.mdf和事務日志文件Student_log.ldf。同時,由于是按照Model數據庫的方式來創(chuàng)建的數據庫,所以主文件和日志文件的大小與Model數據庫的主文件和日志文件的大小相同?!纠?-2】 創(chuàng)建一個teachs數據庫。該數據庫的主數據文件的邏輯文件名為teachs_ data,物理文件名為teachsdat.mdf,存放在D:datas目錄下,初始大小為10MB,最大為100MB,數據庫文件的增量為5MB。同步建立日志文件,日志文件的邏輯文件名為teachs_log,物理文件名為teachslog.ldf,也存放在D:datas目錄下,文件的初始大小為5MB,最大為20MB
34、,文件的增量為2MB。程序清單如下:CREATE DATABASE teachs ON ( NAME=teachs_dat, FILENAME=D:datasteachsdat.mdf, SIZE=10, MAXSIZE=100, FILEGROWTH=5 ) LOG ON ( NAME=teachs_log, FILENAME=D:datasteachslog.ldf, SIZE=5, MAXSIZE=20, FILEGROWTH=2 )結果如圖7-8所示。圖7-8 使用SQL語句創(chuàng)建teachs數據庫系統(tǒng)輸出結果如下:CREATE DATABASE 進程正在磁盤 teachs_dat 上分
35、配 10.00 MB 的空間。CREATE DATABASE 進程正在磁盤 teachs_log 上分配 5.00 MB 的空間?!纠?-3】 創(chuàng)建一個指定多個數據文件和日志文件的數據庫。該數據庫的名稱為students,有一個100MB和一個50MB的數據文件和兩個10MB的日志文件。數據文件的邏輯名稱為students1和students2,物理文件名為students1.mdf和students2.mdf。主數據文件為students1,由PRIMARY指定,兩個數據文件最大分別為無限大和200MB,增長量分別為10%和1MB;日志文件的邏輯文件名為studentlog1和 studen
36、tlog2,物理文件名為studentlog1.ldf和studentlog2.ldf,最大均為50MB,文件增長量均為1MB。所有文件均存放在D:datas目錄下。程序清單如下:CREATE DATABASE students ON PRIMARY ( NAME=student1, FILENAME=D:datasstudents1.mdf, SIZE=100, MAXSIZE=unlimited, FILEGROWTH=10% ) , ( NAME=student2, FILENAME=D:datasstudents2.mdf, SIZE=50, MAXSIZE=200, FILEGROW
37、TH=1 ) LOG ON ( NAME=studentlog1, FILENAME=D:datasstudentlog1.ldf, SIZE=10, MAXSIZE=50, FILEGROWTH=1 ) , ( NAME=studentlog2, FILENAME=D:datasstudentlog2.ldf, SIZE=10, MAXSIZE=50, FILEGROWTH=1 )系統(tǒng)輸出結果如下:CREATE DATABASE 進程正在磁盤 student1 上分配 100.00 MB 的空間。CREATE DATABASE 進程正在磁盤 student2 上分配 50.00 MB 的空間
38、。CREATE DATABASE 進程正在磁盤 studentlog1 上分配 10.00 MB 的空間。CREATE DATABASE 進程正在磁盤 studentlog2 上分配 10.00 MB 的空間。結果如圖7-9所示。圖7-9 使用SQL語句創(chuàng)建students數據庫7.3.3 數據庫的修改7.3 數據庫的創(chuàng)建與管理 (續(xù)3)創(chuàng)建數據庫后,可以對其原始定義進行更改。常用的更改操作包括:(1)擴充分配給數據庫的數據文件或事務日志文件的空間。(2)收縮分配給數據庫的數據文件或事務日志文件的空間。(3)添加或刪除輔助數據文件或事務日志文件。(4)更改數據庫名稱。修改數據庫可以使用企業(yè)管理
39、器與Transact-SQL語句兩種方法。使用企業(yè)管理器修改數據庫的方法與創(chuàng)建數據庫的方法基本相同,區(qū)別在于選中要修改的數據庫后,右擊數據庫名稱,從彈出的菜單中選擇“屬性”命令,彈出所選數據庫的屬性對話框,選擇“數據文件”選項卡,如圖7-10所示,在此對話框中可以完成修改已有文件和添加新文件的操作。圖7-10 使用數據庫屬性對話框修改數據庫若要擴大已有數據文件的大小,只需在“分配的空間”字段中輸入新的大小即可;若要添加新的數據文件,只需在已有文件名的下面一行添加一個新數據文件名,然后分別在對應的“位置”、“分配的空間”處輸入合適的值即可,同時也可以設置新數據文件的自動增長屬性,這些操作與創(chuàng)建數
40、據庫的操作一樣。在SQL Server 2000的查詢分析器中使用Transact-SQL語句也可以修改數據庫,一般格式為:ALTER DATABASE 數據庫名 ADD FILE , , n | ADD LOG FILE , , n | REMOVE FILE | MODIFY FILE | MODIFY NAME = 其中,ALTER DATABASE指定要修改的數據庫名稱;ADD FILE表示向數據庫中添加新的數據文件;ADD LOG FILE表示向數據庫中添加日志文件;REMOVE FILE表示從數據庫中刪除文件;MODIFY FILE指定要更改給定的數據文件定義,更改選項包括FILE
41、NAME、SIZE、MAXSIZE和FILEGROWTH;MODIFY NAME用于重命名數據庫?!纠?-4】 向例7-2創(chuàng)建的teachs數據庫添加一個10MB的輔助數據文件。程序清單如下:ALTER DATABASE teachs ADD FILE ( NAME=teachs2, FILENAME=D:datasteachs2.mdf, SIZE=10, MAXSIZE=100, FILEGROWTH=5 )7.3.4 數據庫的刪除7.3 數據庫的創(chuàng)建與管理 (續(xù)4)對于那些不再需要的數據庫,可以將其刪除。刪除數據庫之后,數據庫文件和數據都從服務器上的磁盤中刪除。在企業(yè)管理器中,右擊要刪除
42、的數據庫,從彈出的菜單中選擇“刪除”命令即可刪除選中的數據庫。也可以選中要刪除的數據庫,然后單擊工具欄中的“刪除”按鈕來刪除數據庫,系統(tǒng)會詢問用戶是否要刪除。在SQL Server 2000的查詢分析器中使用Transact-SQL語句也可以刪除數據庫,一般格式為:DROP DATABASE 數據庫名【例7-5】 刪除teachs數據庫。程序清單如下:DROP DATABASE teachs刪除數據庫時一定要慎重,因為刪除數據庫后,與此數據庫相關的數據庫文件和事務日志文件,以及存儲在系統(tǒng)數據庫中的關于該數據庫的所有信息也會被刪除。7.4 數據表的創(chuàng)建和管理當用戶在SQL Server 2000
43、中創(chuàng)建了一個新的數據庫后,該數據庫中即自動包含了一些表、視圖、存儲過程以及其他對象,這些對象是系統(tǒng)從模板數據庫(Model)中自動復制過來的,主要用于管理用戶的數據庫。系統(tǒng)表中存放的都是系統(tǒng)的信息,用戶要想存放自己的數據,必須創(chuàng)建自己的數據庫表。在SQL Server 2000中,一個數據庫中最多可以創(chuàng)建200萬個表,用戶創(chuàng)建數據庫表時,最多可以定義1024列,即可以定義1024個字段。SQL Server 2000提供了兩種方法創(chuàng)建數據庫表:利用企業(yè)管理器和Transact-SQL語句。在第3章中已經講解了利用SQL語句創(chuàng)建數據表的方法,在此主要講解前一種方法。表是由行和列組成的,創(chuàng)建表的過
44、程主要就是定義表的列的過程。在企業(yè)管理器中創(chuàng)建表的步驟如下:(1)在要創(chuàng)建表的數據庫中選擇“表”對象后右擊,在快捷菜單中選擇“新建表”命令,彈出如圖7-11所示的窗口。 圖7-11 創(chuàng)建學生基本信息表(2)在該窗口中分別設定各列的名稱、數據類型、長度、是否允許為空值等屬性。(3)定義好所有列后,單擊工具欄中的“保存”按扭,彈出“保存”對話框,輸入表名(如student),單擊“確定”按鈕即可。1創(chuàng)建表當表創(chuàng)建好后,根據需要可能要對表的列、約束等屬性進行添加、刪除或修改,這就需要修改表結構。用企業(yè)管理器修改數據表結構的步驟如下:(1)在企業(yè)管理器左側目錄樹窗口中,展開“數據庫”文件夾。(2)找到
45、所需要的數據庫,并展開該數據庫文件夾。(3)選中“表”對象后,會在企業(yè)管理器窗口的右側顯示出當前數據庫中的所有數據表。(4)單擊選擇要進行修改的表,在該表名稱上右擊,在快捷菜單中選擇“設計表”命令,如圖7-12所示。(5)修改完畢后,單擊“保存”按鈕。圖7-12 修改數據表結構查看表包括查看表的屬性和表中的數據。(1)查看表的屬性。在企業(yè)管理器中,展開相應數據庫的文件夾,從中找到所需的數據表(如student),然后右擊要查看屬性的表,從快捷菜單中選擇“屬性”命令,彈出“表屬性”對話框,如圖7-13所示,從中可以查看數據表的名稱、所有者、創(chuàng)建日期、文件組、記錄行數,以及數據表中的字段名稱、結構
46、和類型等屬性信息。(2)查看數據表中的數據。在企業(yè)管理器中,右擊要查看數據的表,從快捷菜單中選擇“打開表”“返回所有行”命令,如圖7-14所示。此時,會顯示表中的所有數據。 圖7-13 “表屬性”對話框 圖7-14 查看數據表中的數據在企業(yè)管理器中,右擊要刪除的表,從快捷菜單中選擇“刪除”命令,彈出“刪除對象”對話框。單擊“全部除去”按鈕,即可刪除表;單擊“顯示相關性”按鈕,即會彈出“相關性”對話框,其中列出了該表所依靠的對象和依賴于該表的對象,當有對象依賴于該表時,不能將其刪除。4刪除表在數據表中添加、修改和刪除數據的操作方法如下:(1)在企業(yè)管理器中找到建立的數據庫,單擊列表中的“表”,可
47、在右側的顯示區(qū)域中查看該數據庫中所有已經建立的表。(2)選中并右擊要插入數據的表。(3)在快捷菜單中選擇“打開表”“返回所有行”命令。(4)在彈出的窗口中,直接添加所需的數據即可。注意:必須保證數據和定義的數據類型的一致性,否則,在類型檢查時會出錯。相應地,如果要修改已經輸入的數據,直接輸入新數據即可。對于數據刪除,可以在選中的行上右擊,在快捷菜單中選擇“刪除”命令即可。5在數據表中添加、修改和刪除數據在第3章中已經介紹了索引的相關知識,在此只介紹如何在SQL Server 2000中創(chuàng)建和刪除索引。(1)創(chuàng)建索引。創(chuàng)建索引的步驟如下: 在數據庫關系圖中選擇要創(chuàng)建索引的表,右擊,在快捷菜單中選
48、擇“屬性”命令;或者打開表設計器,在其中右擊要創(chuàng)建索引的表,在彈出的快捷菜單中選擇“屬性”命令。 在彈出的屬性對話框中選擇“索引/鍵”選項卡,單擊“新建”按鈕。在“選定的索引”文本框中將顯示系統(tǒng)分配給新索引的名稱,如圖7-15所示。 在“列名”下拉列表中選擇要創(chuàng)建索引的列(最多可以選擇16列)。對所選的每一列,可指出是按升序還是降序組織列值。 為索引設置其他參數選項,然后單擊“確定”按鈕。當保存表或視圖時,索引即創(chuàng)建在該數據庫中。圖7-15 為數據表建立索引6索引(2)刪除索引。索引的使用會減慢執(zhí)行速度,刪除索引的操作步驟如下: 在數據庫關系圖中選擇要刪除索引的表,右擊,在快捷菜單中選擇“屬性
49、”命令;或者打開表設計器,在其中右擊要刪除索引的表,在快捷菜單中選擇“屬性”命令。 在打開的對話框中選擇“索引/鍵”選項卡。 從“選定的索引”下拉列表中選擇要刪除的索引。 單擊“刪除”按鈕。當保存表或關系圖時,索引即從數據庫中被刪除。注意:單擊“刪除”按鈕將導致一個無法撤銷的操作,而且不保存對數據庫關系圖所做的所有其他更改。若要撤銷該操作,不保存更改即可,即關閉當前的數據庫關系圖和所有打開的其他數據庫關系圖以及表設計器窗口。7.5 數據查詢數據查詢主要根據用戶提供的限定條件進行,其結果是返回一張滿足用戶需求的表。在SQL Server 2000中,可以使用企業(yè)管理器進行數據查詢,具體方法是:在
50、企業(yè)管理器中展開指定的數據庫并選擇“表”對象,在右邊的顯示區(qū)域中右擊要操作的數據表,在彈出的快捷菜單中選擇“打開表”“查詢”選項,打開查詢對話框。在該對話框中可以設置各種查詢條件,還可以直接輸入Transact-SQL查詢語句,單擊工具欄中的“運行”按鈕即可執(zhí)行指定的查詢,查詢結果會顯示在窗口下部,如圖7-16所示。在SQL Server 2000中,還可以利用查詢分析器進行數據查詢。方法是:在查詢分析器的查詢窗口中輸入相應的Transact-SQL查詢語句,然后單擊工具欄中的“執(zhí)行查詢”按鈕,查詢結果會顯示在窗口下部。圖7-16 利用企業(yè)管理器進行數據查詢7.6 存儲過程和觸發(fā)器存儲過程與觸
51、發(fā)器是SQL Server中的兩類數據庫對象,都是由Transact-SQL語句編寫而成的,所不同的是存儲過程是由用戶根據需要調用執(zhí)行的,而觸發(fā)器則是由某個動作(如刪除或修改一條記錄)引發(fā)執(zhí)行的。另外,存儲過程可以不依附于表而單獨存在,而觸發(fā)器則必須依附于一個特定的表。存儲過程和觸發(fā)器與函數不同,函數可以直接通過函數名返回數值,且返回值可以直接在表達式中使用,而它們則不能直接通過名稱返回值,也不能直接在表達式中使用。7.6 存儲過程和觸發(fā)器(續(xù)1)7.6.1 存儲過程在SQL Server中的存儲過程分為系統(tǒng)提供的存儲過程和用戶自定義的存儲過程兩類。系統(tǒng)存儲過程主要存放在Master數據庫中,
52、并以sp_為前綴。它主要從系統(tǒng)表中獲取信息,為系統(tǒng)管理員管理SQL Server提供支持。通過系統(tǒng)存儲過程,SQL Server中的許多管理性或信息性的活動(如了解數據庫對象、數據庫信息、設置用戶角色等)都可以被順利、有效地完成。盡管系統(tǒng)存儲過程存放在Master數據庫中,但是仍可以在其他數據庫中對其進行調用(調用時不必在存儲過程名前加數據庫名),而且當創(chuàng)建一個新數據庫時,會在新數據庫中自動創(chuàng)建一些系統(tǒng)存儲過程。用戶自定義存儲過程是指由用戶創(chuàng)建的、能完成某一特定功能(如查詢用戶所需數據信息等)的存儲過程。本節(jié)所涉及到的存儲過程主要是指用戶自定義存儲過程。1創(chuàng)建存儲過程存儲過程是一種數據庫對象,
53、在SQL Server 2000中可以使用企業(yè)管理器和Transact-SQL命令來創(chuàng)建。使用Transact-SQL命令創(chuàng)建存儲過程是一種較為快速的方法,但對于初學者,使用企業(yè)管理器更易理解,更簡單。創(chuàng)建存儲過程時,需要確定存儲過程的3個組成部分:(1)所有的輸入參數以及傳給調用者的輸出參數。(2)被執(zhí)行的針對數據庫的操作語句,包括調用其他存儲過程的語句。(3)返回給調用者的狀態(tài)值,以指明調用是成功還是失敗。使用企業(yè)管理器創(chuàng)建存儲過程的操作步驟如下:(1)打開企業(yè)管理器,在樹狀目錄中展開將存放存儲過程的數據庫節(jié)點,選擇“pubs”數據庫。(2)右擊“pubs”數據庫,在彈出的菜單中選擇“新建
54、”“存儲過程”命令。(3)在彈出的“存儲過程屬性新建存儲過程”對話框中輸入以下創(chuàng)建存儲過程的代碼:CREATE PROCEDURE myprocedure firstname varchar(40),lastname varchar(40) AS SELECT au_fname,au_lname,phone,addressFROM authorsWHERE au_fname=firstname OR au_lname=lastname(4)單擊“檢查語法”按鈕,若語法正確,會彈出語法檢查成功的對話框,如圖7-17所示;若語法存在錯誤,會有對話框提示錯誤的原因。(5)單擊“確定”按鈕保存新建的存
55、儲過程。圖7-17 輸入Transact-SQL語句并進行語法檢查管理存儲過程包括查看、修改、刪除和執(zhí)行存儲過程。(1)查看與修改存儲過程。存儲過程被創(chuàng)建后,其名字存儲在系統(tǒng)表Sysobjects中,源代碼存放在系統(tǒng)表Syscomments中??梢酝ㄟ^SQL Server提供的系統(tǒng)存儲過程來查看關于用戶創(chuàng)建的存儲過程的信息。利用企業(yè)管理器查看與修改存儲過程源代碼的操作步驟如下: 打開企業(yè)管理器,在樹狀目錄中展開存儲過程所在的數據庫節(jié)點。 單擊“存儲過程”節(jié)點,此時在窗口的右側將顯示該數據庫所有的存儲過程。右擊要查看源代碼的存儲過程,在彈出的快捷菜單中選擇“屬性”命令,彈出“存儲過程屬性”對話框
56、,在此對話框中便可查看存儲過程的源代碼,也可修改存儲過程。(2)刪除存儲過程。刪除存儲過程可使用企業(yè)管理器完成,即在企業(yè)管理器中找到要刪除的存儲過程,右擊,在彈出的快捷菜單中選擇“刪除”命令;也可以使用DROP PROCEDURE語句實現,其語法格式為:DROP PROCEDURE 存儲過程名(3)執(zhí)行存儲過程。存儲過程可以被應用程序調用,也可以在查詢分析器中使用EXECUTE語句執(zhí)行,或者由觸發(fā)器自動執(zhí)行。例如要執(zhí)行上面創(chuàng)建的存儲過程myprocedure,只需在查詢分析器中輸入如下代碼:EXECUTE myprocedure Albert, Ringer運行結果如圖7-18所示。圖7-18
57、 執(zhí)行存儲過程7.6 存儲過程和觸發(fā)器(續(xù)2)7.6.2 觸發(fā)器 SQL Server 2000主要提供了兩種機制用于維護數據的完整性:一種是約束,另一種是觸發(fā)器。觸發(fā)器與表緊密聯系,離開了表,它將不復存在(這點與約束十分類似)。觸發(fā)器是一種特殊的存儲過程,其功能與存儲過程有相同點,但又有不同點:觸發(fā)器主要是通過事件觸發(fā)而被執(zhí)行,而存儲過程則是通過存儲過程名稱被直接調用執(zhí)行。 用戶不需要直接調用觸發(fā)器,它是在對表或視圖中的數據進行修改(UPDATE)、插入(INSERT)或刪除(DELETE)操作時自動觸發(fā)執(zhí)行的。觸發(fā)器隸屬于一個表,一個表最多只能有3個觸發(fā)器,分別是INSERT、DELETE
58、、UPDATE觸發(fā)器。觸發(fā)器的主要優(yōu)點是用戶可以用編程的方法來實現復雜的處理邏輯和商業(yè)規(guī)則,增強了數據完整性約束的功能。 使用觸發(fā)器的最終目的是更好地維護企業(yè)的業(yè)務規(guī)則。在實際運用中,觸發(fā)器的主要作用就是實現由主關鍵字、外來關鍵字和CHECK約束所不能保證的復雜的參照完整性和數據的一致性。這是因為在觸發(fā)器中可以包含非常復雜的邏輯過程,而且和CHECK約束不同,觸發(fā)器可以參照其他表中的列。例如,觸發(fā)器能夠找出某一表在數據修改前后狀態(tài)發(fā)生的差異,并根據這種差異執(zhí)行一定的處理。另外,一個表的同一類型(INSERT、DELETE、UPDATE)的多個觸發(fā)器,能夠對同一種數據操作采取多種不同的處理。除此
59、之外,觸發(fā)器還有許多其他功能。(1)強化約束(Enforce Restriction)。觸發(fā)器能夠實現比CHECK語句更為復雜的完整性約束。(2)跟蹤變化(Auditing Changes)。觸發(fā)器可以偵測數據庫內的操作,從而不允許數據庫中未經許可的更新和變化。(3)級聯操作(Cascaded Operation)。觸發(fā)器可以偵測數據庫內的操作,并自動地級聯影響整個數據庫的各項內容。例如,某個表上的觸發(fā)器中包含對另外一個表的數據操作(如刪除、修改、插入),而該操作又導致該表上的觸發(fā)器被觸發(fā)。(4)存儲過程的調用(Stored Procedure Invocation)。為了響應數據庫更新,觸發(fā)
60、器可以調用一個或多個存儲過程,甚至可以通過外部過程的調用,而在DBMS本身之外進行操作。正是因為觸發(fā)器的強大功能和優(yōu)點,使得觸發(fā)器技術獲得了越來越多的關注、研究和推廣應用。觸發(fā)器可以分為AFTER觸發(fā)器和INSTEAD OF觸發(fā)器兩種。(1)AFTER觸發(fā)器:該類型的觸發(fā)器只有在數據變動(INSERT、UPDATE、DELETE)完成以后才被觸發(fā),且只能在表上定義??梢詫ψ儎拥臄祿M行檢查,如果發(fā)現錯誤,將拒絕接受或回滾變動的數據。在同一個數據表中可以創(chuàng)建多個AFTER觸發(fā)器。(2)INSTEAD OF觸發(fā)器:它是SQL Server 2000中新增的功能。這種類型的觸發(fā)器將在數據變動以前被觸
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 初中數學反比例函數的圖象與性質深度探究與能力提升方案
- 高壓電線路施工組織方案實例
- 企事業(yè)單位信息化建設方案
- 高職院校學生職業(yè)素養(yǎng)提升實踐方案
- 建筑勞動力資源配置方案
- 輸血前檢測管理制度
- 幼兒園食堂從業(yè)人員晨檢制度
- 新能源項目風險評估及管控方案
- 2026天津職業(yè)技術師范大學第二批招聘方案(博士或高級專業(yè)技術職務崗位)36人備考題庫有答案詳解
- 環(huán)境污染防治工程技術方案范本
- 光化學和光催化反應的應用
- 中日友好醫(yī)院公開招聘工作人員3人筆試參考題庫(共500題)答案詳解版
- VDA6.3-2016過程審核主要證據清單
- 辦公耗材采購 投標方案(技術方案)
- 2020公務船技術規(guī)則
- 三片罐空罐檢驗作業(yè)指導書
- 四川峨勝水泥集團股份有限公司環(huán)保搬遷3000td熟料新型干法大壩水泥生產線環(huán)境影響評價報告書
- 開庭陳述事實舉證范文(4篇)
- 管道焊接工藝和熱處理課件
- 2023深圳工務署品牌名單
- 二年級下冊課文快樂讀書吧-神筆馬良
評論
0/150
提交評論