版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
SQLServer2000資料庫管理系統(tǒng)7.1SQLServer2000的簡介
SQLServer是一種關係資料庫,它除了支持傳統(tǒng)關係資料庫組件(如數(shù)據(jù)庫,表)和特性(如表的join)外,另外也支持當今關係資料庫常用的組件,如存儲過程,視圖等。SQLServer支持關係資料庫國際標準語言——SQL(它稱為Transact-SQL)。SQLServer另外的一項重要的特點是它支持資料庫複製的功能。
SQLServer2000包含有6種不同的版本:
(1)企業(yè)版(EnterpriseEdition)作為各種企業(yè)、單位或組織的資料庫伺服器使用
(2)標準版(StandardEdition)用於小型的工作組或部門7.1SQLServer2000的簡介
(3)個人版(PersonalEdition)用於單機系統(tǒng)或客戶機(4)開發(fā)者版(DeveloperEdition)用於程式員開發(fā)應用程式時,將SQLServer2000作為其數(shù)據(jù)存儲區(qū)。(5)WindowsCE版安裝於執(zhí)行WindowsCE的個人數(shù)字助理上(PDA),它能複製任何SQLServer2000版本的數(shù)據(jù),使WindowsCE數(shù)據(jù)能與公司的主要資料庫同步。
(6)評測版SQLServer2000評測版是一個功能基本齊全的版本,該版本主要用來評估SQLServer2000的功能。
7.1SQLServer2000的簡介
一、SQLServer2000的新特性(1)在關係資料庫方面的增強
1.XML支持
2.用戶定義函數(shù)和新的數(shù)據(jù)類型
3.索引視圖,索引增強
4.分佈式查詢
5.備份和還原
6.級聯(lián)參考完整性約束
8.排序規(guī)則(2)圖形管理工具增強
1.日誌傳送功能
2.SQL事件探查器增強
7.1SQLServer2000的簡介
3.SQL查詢分析器增強
4.複製資料庫嚮導二、SQLServer2000的主要組件作為一個完善的資料庫管理系統(tǒng),SQLServer2000提供了一些功能強大,使用方便的資料庫管理工具。下麵,對這些組件一個簡單的介紹.
1、企業(yè)管理器(EnterpriseManager)
企業(yè)管理器是SQLServer中最重要的管理工具
2、查詢分析器(QueryAnalyzer)
查詢分析器用於執(zhí)行Transact-SQL命令等SQL腳本程式,以查詢分析或處理資料庫中的數(shù)據(jù)。
3
、
服務管理器(ServiceManager)
7.1SQLServer2000的簡介
服理器用於啟動、暫?;蛲V筍QLServer的四種服務,即分佈式事務協(xié)調器(DistributedTransactionCoordinator,DTC)、MSSQLServerOLAPservice、SQLServer和SQLServerAgent。
4、客戶端網(wǎng)路實用工具(ClientNetworkUtility)
5、伺服器端網(wǎng)路實用工具(ServerNetworkUtility)伺服器端網(wǎng)路實用工具用於配置伺服器端的連接、測定網(wǎng)路庫的版本資訊
6、導入和導出數(shù)據(jù)(ImportandExportData)7、在IIS中配置SQLXML支持(ConfigureSQLXMLSupportinIIS)7.1SQLServer2000的簡介
8、事件探查器(Profiler)
事務探查器的功能是監(jiān)視SQLServer資料庫系統(tǒng)引擎事件,主要用於監(jiān)聽SQLServer系統(tǒng)的運行性能。
9、聯(lián)機叢書(BookOnline)
SQLServer2000提供了大量的聯(lián)機文檔,用戶可以便捷地查到許多很有價值的資訊。一個優(yōu)秀的SQLServer管理員必然是使用聯(lián)機文檔的高手。7.1SQLServer2000的簡介圖7.1SQLServer2000工具菜單7.2企業(yè)管理器
企業(yè)管理器(EnterpriseManager)是SQLSERVER程式組中的最重要的程式之一,是管理伺服器和數(shù)據(jù)庫的主要工具??梢詮拈_始菜單命令“開始→程式→MicrosoftSQLServer→企業(yè)管理器”打開企業(yè)管理器。如圖7.27.2企業(yè)管理器
在企業(yè)管理器中包含兩個窗口,其中左側的窗口是以“樹狀目錄”顯示的活動窗口,右側是顯示內容的窗口。1、樹狀目錄窗口
在左邊的樹狀目錄中,根節(jié)點是“控制面板根目錄”,表示它是所有伺服器控制面板的根。2、內容窗口
企業(yè)管理器右邊的窗口為內容窗口。在該窗口中顯示的是在樹狀目錄處於“焦點”狀態(tài)(或選種狀態(tài))的條目中包含的內容。企業(yè)管理器中的菜單分為上下兩行,其中上面一行包括“控制面版”,“窗口”和“幫助”,通過這三個菜單項可以實現(xiàn)退出企業(yè)管理器。
7.3查詢分析器
查詢分析器(QueryAnalyzer)是SQLServer提供的使用方便,介面友好的Transact-SQL語句編譯工具,是SQLServer2000客戶端應用程式的重要組成部分。用戶可以通過“開始”菜單或從SQLServer企業(yè)管理器內運行它。還可以通過執(zhí)行isqlw實用工具從命令提示符運行SQL查詢分析器。啟動時系統(tǒng)首先打開“連接到SQLServer”對話框,如圖7.3所示。
7.3查詢分析器圖7.3啟動查詢分析器7.3查詢分析器
圖7.4查詢分析器到哪個SQLServer伺服器。選擇伺服器並設置正確使用該對話框可以指定連接的身份驗證方式,單擊“確定”按鈕,即可打開SQLServer查詢分析器,如圖7.4所示7.3查詢分析器
查詢分析器左邊的窗口是“對象流覽器”,這個窗口是SQLServer2000中新增的窗口。該窗口包含兩個選項卡:
“對象”選項卡—用於流覽SQLServer中所有的資料庫對象,內置函數(shù)和數(shù)據(jù)庫類型等;
“模版”選項卡—提供一些常用的程式模版,用戶可以在這些模版的基礎上進行修改,以簡化Transact-SQL語言的輸入操作。7.4.1系統(tǒng)資料庫
SQLServer2000系統(tǒng)有四種系統(tǒng)資料庫:
1.master資料庫
master資料庫記錄SQLServer系統(tǒng)的所有系統(tǒng)級別資訊
2.tempdb資料庫
tempdb
資料庫保存所有的臨時表和臨時存儲過程。
3.model資料庫
model資料庫用作在系統(tǒng)上創(chuàng)建的所有資料庫的範本(包括用戶數(shù)據(jù)庫和tempdb資料庫)。
4.msdb資料庫
SQLServer企業(yè)管理器和SQLServerAgent使用Msdb資料庫來執(zhí)行安排工作和警報以及記錄操作者等操作。7.4.2實例資料庫
也存儲在SQLServer2000默認安裝目錄的Data目錄中。Pubs和Northwind資料庫可以作為SQLServer2000的學習工具。其中,pubs實例資料庫SQLServer2000有兩個實例資料庫:pubs和Northwind。與系統(tǒng)資料庫一樣,實例資料庫的檔存儲了一個虛構的圖書出版公司的基本情況,Northwind實例資料庫包含了一個公司的銷售數(shù)據(jù),是一個虛構的公司,該公司從事世界各地的特產(chǎn)食品進出口貿易
7.4.3創(chuàng)建資料庫
在SQLServer2000中創(chuàng)建資料庫的場所有兩處:一是在企業(yè)管理器中使用現(xiàn)成的命令和功能互動式創(chuàng)建;
二是在查詢分析器中書寫Transact-SQL語句。首先介紹如何使用企業(yè)管理器創(chuàng)建自己的用戶數(shù)據(jù)庫。使用企業(yè)管理器創(chuàng)建資料庫,可以採用兩種方法:①使用創(chuàng)建資料庫嚮導;②在控制面板樹上選擇資料庫,然後選擇“新建資料庫”菜單命令直接創(chuàng)建用戶數(shù)據(jù)庫。資料庫創(chuàng)建嚮導簡單易用,但是它的使用在一定程度上限制了物理資料庫的複雜程度,所以在實際操作中並不常用。因此,我們主要討論第二種方法
7.4.3創(chuàng)建資料庫在企業(yè)管理器中直接創(chuàng)建用戶數(shù)據(jù)庫的步驟如下:(1)打開企業(yè)管理器(2)在控制面板目錄中選擇“資料庫”節(jié)點如下圖7.4.3創(chuàng)建資料庫(3)在“資料庫”節(jié)點上單擊右鍵,並在彈出的菜單中選擇“新建資料庫”
(4)在“名稱”文本框中輸入資料庫的名稱。(5)點擊“數(shù)據(jù)檔”選項卡?!皵?shù)據(jù)檔”是SQLServer2000用於實際存儲數(shù)據(jù)、索引等資料庫對象的檔。(6)點擊“日誌檔”選項卡指定事務日誌檔的名稱。
(7)單擊“確定”按鈕,則創(chuàng)建一個新資料庫7.4.4查看資料庫資訊1.用企業(yè)管理器查看資料庫資訊在企業(yè)管理器窗口中查看資料庫資訊的方法如下。(1)方法1:在企業(yè)管理器窗口中的左側目錄樹窗口中,展開“資料庫”檔夾,在某個資料庫名稱上先單左鍵,再單擊右鍵,在出現(xiàn)的快捷菜單中單擊“查看”中的“任務板”。(2)方法2:在企業(yè)管理器窗口中的左側目錄樹窗口中,展開“資料庫”檔夾,單擊某個資料庫名稱,然後單擊“查看”菜單,在其下拉菜單中單擊“任務板”
7.4.4查看資料庫資訊
操作完成後,在企業(yè)管理器窗口右側的“任務板中看到資料庫的“常規(guī)”資訊,“表”資訊和“嚮導”資訊。在打開資料庫檔夾目錄樹後,可以選擇各種資料庫對象進行資訊流覽。7.4.5更改資料庫1.使用企業(yè)管理器修改資料庫的一個簡單快捷的方法是使用企業(yè)管理器,使用它修改資料庫結構的步驟下:
(1)打開需要修改的用戶數(shù)據(jù)庫的資料庫屬性對話框。
(2)在屬性對話框中對相關內容(如數(shù)據(jù)檔和事務日誌檔的屬性)進行修改
7.4.5更改資料庫2.使用ALTERDATABASE語句修改除使用企業(yè)管理器外,還可以使用ALTERDATABASE語句修改資料庫,語法如下:ALTERDATABASEdatabase{ADDFILE〈filespec〉[,…n][TOFILEGROUPfilegroup_name]|ADDLOGFILE〈filespec〉[,…n]|REMOVEFILElogical_file_name|ADDFILEGROUPfilegroup_name|REMOVEFILEGROUPfilegroup_name|MODIFYFILE<filespec>|MODIFYFILEGROUPfile_group_namefilegroup_property}7.4.5更改資料庫
<filespec>::=(NAME=logical_file_name[,FILENAME=’os_file_name’][,SIZE=size][,MAXSIZE={vmax_size|UNLIMITED}][,FILEGROWTH=growth_increment])
各參數(shù)說明如下:(1)ADDFILE指定要增加檔到哪個檔組。(2)TOFILEGROUP指定要增加檔到哪個檔組。(3)ADDLOGFILE指定要增加的事務日誌檔。(4)REMOVEFILE從資料庫系統(tǒng)表中刪除指定檔的定義並且刪除其物理檔。檔只有為空時才能被刪除。(5)ADDFILEGROUP指定要增加的檔組。(6)REMOVEFILEGROUP從資料庫中刪除指定檔組的定義並且刪除其包括的所有資料庫檔。7.4.5更改資料庫
(7)MODIFYFILE修改指定檔的檔案名,容量大小,最大容量以及檔增容方式等屬性,但一次只能修改一個檔的一個屬性。使用此項時應注意:在檔格式filespec中必須NAME明確指定檔的名稱,如果檔大小已經(jīng)確定,那麼新定義的size必須比當前的檔容量大
(8)MODIFYFILEGROUPfilegroup_name{filegroup_property}用於修改檔組屬性。
[例1]
修改student資料庫的主數(shù)據(jù)檔的大小增加到15MB。7.4.5更改資料庫
ALTERDATABASEstudentMODIFYFILE(NAME='員工資料庫_dat',SIZE=15)3.更改資料庫名重命名資料庫需要使用系統(tǒng)存儲過程SP_renamedb,其語法如下:
sp_renamedb[@old_name=]'old_name',[@new_name=]'new_name'[例2]
更改student資料庫的名稱為study。
execsp_renamedb'student','study‘7.4.6刪除數(shù)據(jù)
1.用企業(yè)管理器刪除資料庫2.用DROPDATABASE命令刪除資料庫
[例3]
刪除資料庫student。
DROPDATABASEstudent7.4.7壓縮資料庫
資料庫在使用一段時間後時常會出現(xiàn)因數(shù)據(jù)刪除而造成資料庫中空閒空間太多的情況,這時就需要減少分配給資料庫檔和事務日誌檔的磁片空間,以免浪費磁片空間。當資料庫中沒有數(shù)據(jù)時,可以修改資料庫檔屬性,直接改變其佔用空間;但當資料庫中有數(shù)據(jù)時,這樣做會破壞資料庫中的數(shù)據(jù)。因此需要使用壓縮的、式來縮減資料庫空間。對數(shù)據(jù)庫可以進行自動壓縮,也可以進行人工壓縮。7.4.7壓縮資料庫1自動壓縮資料庫
2
人工壓縮資料庫(1)使用企業(yè)管理器壓縮
在企業(yè)管理器介面下在要被壓縮大小的資料庫上選擇單擊滑鼠右鍵,在快捷菜單中選取所有任務→收縮資料庫,
(2)用DBCCSHRINKDATABASE命令壓縮資料庫大小除了利用企業(yè)管理器來壓縮資料庫大小外,也可以使用DBCCSHRINKDATABASE命令來壓縮資料庫大小以刪除未使用使用空間。其語法格式如下:
7.4.7壓縮資料庫DBCCSHRINKDATABASE(資料庫名稱[,百分比][,{NOTRUNCATE|TRUNCATEONLY}])
說明:百分比:在資料庫被壓縮後,資料庫檔保留的空間比率
[例4]
壓縮資料庫student的未使用空間為數(shù)據(jù)庫大小50%。
dbccshrinkdatabase(student,50)
(3)使用DBCCSHRINKFILE改變資料庫檔大小
DBCCSHRINKFILE命令用於壓縮當前資料庫中的檔,其語法如下:7.4.7壓縮資料庫BCCSHRINKFILE({檔案名稱|file_id},{[,新的檔大小]{EMPTYFILE|NOTRUNCATE|TRUNCATEONLDY}}))
[例5]
壓縮資料庫student中的數(shù)據(jù)檔student到1MB。
dbccshrinkfile(student,1)7.5管理數(shù)據(jù)表
創(chuàng)建了一個資料庫以後,就可以在該資料庫中創(chuàng)建表了。表是一種最重要的資料庫對象,它在資料庫中存儲數(shù)據(jù),可以創(chuàng)建自己的數(shù)據(jù)表。同時表也是用來存儲數(shù)據(jù)和運算元據(jù)的邏輯結構,其結構和電子錶格相似,有行和列組成。7.5.1用企業(yè)管理器創(chuàng)建數(shù)據(jù)表
在企業(yè)管理器中創(chuàng)建表按以下步驟進行。(1)在要創(chuàng)建表的資料庫中選擇“表”對象後,單擊右鍵從快捷菜單中選擇“新建表”選項或在工具欄中選擇圖示,即會出現(xiàn)定義列對話框,如圖7.8所示在此可設定表的列名、數(shù)據(jù)類型、精度和缺省值等屬性。(2)將數(shù)據(jù)表中各列定義完畢後,單擊工具欄中的保存按鈕,即出現(xiàn)輸入新建表名的對話框。(3)輸入表名後,單擊“確定”按鈕,即會將表保存到資料庫中。
7.5.2修改表1.表的重新命名(1)在企業(yè)管理器中展開希望重新命名的表所在的資料庫節(jié)點,然後選中該資料庫節(jié)點下一級菜單中的“表”節(jié)點。(2)在希望重新命名的表上單擊滑鼠右鍵,在彈出菜單上選擇命令“重命名”,輸入新的表名稱。(3)按回車鍵,在彈出的對話框內單擊“確定”按鈕當表創(chuàng)建好後,可以根據(jù)需要對表的列,約束等屬性進行添加,刪除和修改。這就需要修改表結構
2.修改數(shù)據(jù)表結構打開希望修改表結構的表設計窗口,在該窗口中可以執(zhí)行下列操作:7.5.2修改表(1)改數(shù)據(jù)表中字段定義(2)插入新字段如果希望為數(shù)據(jù)表添加新的字段,可以在某字段所在的行上單擊滑鼠右鍵,然後在彈
出菜單中選擇“插入列”命令,該字段前面會插入一個空白行,在空白行中編輯新字段即可。(3)刪除現(xiàn)有字段選中該字段並單擊滑鼠右鍵,在彈出菜單中選擇命令“刪除列”。3.修改表格屬性在表設計窗口中單擊“表和索引屬性”按鈕,打開表格屬性窗口,在該窗口中可以設置與整個表相關的重要屬性,如“表”,“關係”,“索引/鍵”,“CHECK約束”。7.5.2修改表(1)在要創(chuàng)建表的資料庫中選擇“表”對象後,單擊右鍵從快捷菜單中選擇“新建表”選項或在工具欄中選擇圖標,即會出現(xiàn)定義列對話框,如圖7.8所示在此可設定表的列名、數(shù)據(jù)類型、精度和缺省值等屬性。1)在要創(chuàng)建表的資料庫中選擇“表”對象後,單擊右鍵從快捷菜單中選擇“新建表”選項或在工具欄中選擇
(2)將數(shù)據(jù)表中各列定義完畢後,單擊工具欄中的保存按鈕,即出現(xiàn)輸入新建表名的對話框。(3)輸入表名後,單擊“確定”按鈕,即會將表保存到資料庫中。
7.5.2修改表1.表的重新命名
(1)在企業(yè)管理器中展開希望重新命名的表所在的資料庫節(jié)點,然後選中該資料庫節(jié)點下一級菜單中的“表”節(jié)點。(2)在希望重新命名的表上單擊滑鼠右鍵,在彈出菜單上選擇命令“重命名”,輸入新的表名稱。(3)按回車鍵,在彈出的對話框內單擊“確定”按鈕當表創(chuàng)建好後,可以根據(jù)需要對表的列,約束等屬性進行添加,刪除和修改。這就需要修改表結構2.修改數(shù)據(jù)表結構打開希望修改表結構的表設計窗口,在該窗口中可以執(zhí)行下列操作:(1)改數(shù)據(jù)表中字段定義7.5.2修改表
(2)插入新字段
(3)刪除現(xiàn)有字段選中該字段並單擊滑鼠右鍵,在彈出菜單中選擇命令“刪除列”。
3.修改表格屬性
4.用存儲過程sp_rename修改表名和列名
sp_rename存儲過程可以修改當前資料庫中用戶對象的名稱,如表,列,索引,存儲過程等。其語法如下:
7.5.2修改表
execsp_rename[@objname=]'object_name',[@newname=]'new_name'[,[@objtype=]'object_type']OBJECT值指代了系統(tǒng)表sysobjects中的所有對象,如表、視圖、存儲過程、觸發(fā)器、規(guī)則和約束等。OBJECT值為默認值。
[例6]
更改s表中的列sno名稱為stusno。
execsp_rename's.sno','stusno','column'
7.5.3查看表1.查看表的屬性在企業(yè)管理器下選擇表名,單擊滑鼠右鍵,在出現(xiàn)的快捷菜單中選取“屬性”,將會出現(xiàn)如圖7.9的介面。在此介面中我們可以選擇“常規(guī)”以查看表結構,從中可以看到表的大部分屬性資訊,如數(shù)據(jù)表的名稱,所有者,創(chuàng)建日期,檔組,記錄的行數(shù),數(shù)據(jù)表中的字段名稱,結構和類型等。在企業(yè)管理器下選擇表名,單擊滑鼠右鍵,在出現(xiàn)的快捷菜單中選取“屬性”,將會出現(xiàn)如圖7.9的介面。在此介面中我們可以選擇“常規(guī)”以查看表結構,從中可以看到表的大部分屬性資訊,如數(shù)據(jù)表的名稱,所有者,創(chuàng)建日期,檔組,記錄的行數(shù),數(shù)據(jù)表中的字段名稱,結構和類型等。
7.5.3查看表2.查看數(shù)據(jù)表中的數(shù)據(jù)在企業(yè)管理器中,用右鍵單擊要查看數(shù)據(jù)的表,從快捷菜單中選擇“打開表”,再選擇其子菜單中的“返回所有行”,如圖7.10,圖7.11所示3.用系統(tǒng)存儲過程查看表的資訊
sp_help存儲過程可以提供指定的資料庫對象的資訊和系統(tǒng)或用戶定義的數(shù)據(jù)類型的資訊。其語法如下:
sp_help[[@objname=]name]sp_help存儲過程只用於當前的資料庫,其中[@objname=]name子句指定對象的名稱。如果不指定對象的名稱,sp_help存儲過程就會列出當前資料庫中的所有對象7.5.3查看表
對象的所有者和對象的類型,但觸發(fā)器的資訊需要用sp_helptrigger存儲過程來顯示。
[例7]
顯示當前資料庫中的所有對象的資訊:execsp_help。顯示student表的資訊:
execsp_helpstudent7.5.4用企業(yè)管理器刪除表
在企業(yè)管理器中,用右鍵單擊要刪除的表,從快捷菜單中選擇“刪除”選項,則會出現(xiàn)刪除對象對話框;單擊“全部除去”按鈕,當有對象依賴於表時就不能刪除表了。當有對象依賴於表時就不能刪除表了。
7.5.5對表建立索引
在SQLServer中,除了使用SQL語句創(chuàng)建索引外,還用企業(yè)管理器創(chuàng)建索引。
1.
用索引創(chuàng)建嚮導創(chuàng)建索引(1)打開企業(yè)管理器,從工具欄中選擇快捷菜單“工具→嚮導”(如圖7.12),打開“選擇嚮導”對話框。(2)在“選擇嚮導”對話框中選擇“資料庫→創(chuàng)建索引嚮導”節(jié)點,單擊“確定”按鈕(3)在創(chuàng)建索引嚮導的歡迎對話框中,單擊“下一步”,打開“選擇資料庫和表”對
7.5.5對表建立索引話框。(4)在“選擇資料庫和表”對話框的“資料庫名稱”一欄中選擇資料庫,在“對象名”一欄中選擇表名。這裏選擇了資料庫Student中表STUDENT(如圖7.14),單擊“下一步”。(5)在“選擇列”對話框中選擇將包含在索引中的字段。這裏選擇基於“DEPT”字段創(chuàng)建索引(如圖7.15),然後單擊“下一步”。(6)在“指定索引選項”對話框(如圖7.16)中設置索引選項,各個選項含義如下使其成為聚集索引:指定該索引為聚集索引。
7.5.5對表建立索引
使其成為唯一性索引:指定將該索引創(chuàng)建為唯一索引。填充因數(shù):設置填充因數(shù),並設置系統(tǒng)在最初創(chuàng)建索引時索引頁的填充程度。如果希望系統(tǒng)自動填充因數(shù),請選擇“最佳”;如果希望自己設置填充因數(shù),選擇“固定”,並在右邊輸入一個數(shù)字,該數(shù)字表示的是百分比。(7)設置完索引選項以後,單擊“下一步”,彈出“正在完成索引嚮導”對話框,在該對話框中顯示了索引名稱和包含在索引中的字段。在這個對話框中還可以為索引重新命
2使用企業(yè)管理器創(chuàng)建索引介紹如何使用企業(yè)管理器創(chuàng)建和管理索引。(1)選擇表“STUDENT”,單擊滑鼠右鍵。在彈出菜單中選擇命令“所有任務→
7.5.5對表建立索引
(2)在“管理索引”對話框中從“資料庫”下拉菜單中選擇資料庫student,從“表/視圖”下拉菜單中選擇表[dbo].[STUDENT](如圖7.19)(3)此時在“現(xiàn)有索引”的列表框中會列出表s中現(xiàn)存的索引。本例在“SNO”字段上創(chuàng)建一個新的索引,所以選擇“新建”按鈕,彈出“新建索引”對話框。(4)在“新建索引”對話框的索引名稱文本框中輸入索引名稱,然後選擇字段“SNO”並設置索引屬性(5)設置索引選項後,單擊“確定”按鈕即可。
3.查看和修改索引(1)用企業(yè)管理器查看和修改索引
(2)用sp_helpindex存儲過程查看索引7.5.5對表建立索引[例8]
查看S表的索引。
execsp_helpindexS4.用sp_rename存儲過程更改索引名稱
[例9]
更改s表中索引insno改為dxsno。
execsp_rename's.insno','dxsno‘5.刪除索引
(1)用企業(yè)管理器刪除索引(2)用DROPINDEX命令刪除索引
DROPINDEX命令可以刪除一個或多個當前資料庫中的索引,其語法如下:7.5.5對表建立索引
DROPINDEX'tablename.indexname'[,…n]DROPINDEX命令不能刪除有CREATETABLE或ALTERTABLE命令創(chuàng)建的PRIMARYKEY或UNIQUE約束索引,也不能刪除系統(tǒng)表中的索引。
[例10]
刪除表S中的索引dxsno。
dropindexS.dxsno7.6用企業(yè)管理器管理數(shù)據(jù)
創(chuàng)建了資料庫,也創(chuàng)建了若干資料庫表了,接下來就要向表中添加數(shù)據(jù),輸入有誤時會修改數(shù)據(jù),不需要的數(shù)據(jù)要能刪除掉,這些維護數(shù)據(jù)的操作SQL命令能完成的,這裏主要介紹在企業(yè)管理器中如何交互介面操作的方法。7.6.1添加數(shù)據(jù)
添加的方法是:利用前面介紹的方法打開待加入記錄數(shù)據(jù)的數(shù)據(jù)表(如圖7.11),在彈出的窗口中,單擊最後的空白行,分別向各字段中輸入新數(shù)據(jù)即可。當輸入一個新記錄的數(shù)據(jù)後,會自動在最後出現(xiàn)一新的空白行,用戶可以繼續(xù)連續(xù)輸入多個記錄的數(shù)據(jù)7.6.2刪除數(shù)據(jù)
在SQLServer中,除使用DELETE語句刪除數(shù)據(jù)表中的記錄數(shù)據(jù)外,還可以在企業(yè)管理器中,在查看數(shù)據(jù)表的數(shù)據(jù)時刪除數(shù)據(jù),但這種方式比較適合於刪除單個或少量的記錄等簡單情況。刪除數(shù)據(jù)的具體方法是:打開要刪除記錄數(shù)據(jù)的數(shù)據(jù)表,在如圖7.22的窗口中,單擊記錄左側的小方快,此時該記錄為黑色,表示已選擇了該記錄,如圖7.22所示。也可以用滑鼠在記錄左側的區(qū)域上,下拖動來選擇多個記錄。此時按下Del鍵,系統(tǒng)會出現(xiàn)如圖7.23所示的對話框,提示用戶是否要刪除記錄,如果用戶單擊“是”按鈕,則記錄被刪除,如果用戶單擊“否”按鈕,則記錄將不被刪除。具體的圖見書上7.6.3修改數(shù)據(jù)
在SQLServer中,除使用UPDATE語句修改數(shù)據(jù)表中的數(shù)據(jù)外,還可以在企業(yè)管理器中,在查看資料庫表的數(shù)據(jù)時修改數(shù)據(jù),但這種方式不能應付大量的數(shù)據(jù)修改。修改數(shù)據(jù)的方法是:打開待修改記錄數(shù)據(jù)的數(shù)據(jù)表,在如圖7.22所示的窗口中,單擊要修改的記錄,分別向各字段中輸入新數(shù)據(jù)即可,原數(shù)據(jù)被新數(shù)據(jù)覆蓋。注意:數(shù)據(jù)一旦交互更新後,將不能撤銷操作。除非利用即時的日誌資訊來恢復。7.7數(shù)據(jù)完整性
資料庫的完整性是指數(shù)據(jù)庫數(shù)據(jù)的正確性、有效性和相容性,SQLServer2000有全面的措施來保障數(shù)據(jù)完整性。7.7.1數(shù)據(jù)完整性概述
數(shù)據(jù)完整性(DataIntegrity)是指數(shù)據(jù)的精確性和可靠性。它是為防止資料庫中存在不符合語義規(guī)定的數(shù)據(jù)和防止因錯誤資訊的輸入輸出造成無效操作或錯誤資訊而提出的。數(shù)據(jù)完整性分為四類:實體完整性(EntityIntegrity),域完整性(DomainIntegrity),SQLServer提供了一些工具來幫助用戶實現(xiàn)數(shù)據(jù)完整性,其中最主要的是規(guī)則,默認,約束和觸發(fā)器7.7.2規(guī)則
.
所謂規(guī)則是指當您對表做新建或操作時該列輸入值必須符合預先設置的條件,如果不符合的話SQLServer就不會讓該條數(shù)據(jù)新建至表內或被操作。一、利用企業(yè)管理器來管理規(guī)則首先在企業(yè)管理器主介面下利用滑鼠選擇要管理規(guī)則的資料庫,將其展開。選中“規(guī)則”彈出如圖7.24的介面。如要查看某一列規(guī)則的內容,在列規(guī)則名稱處雙擊滑鼠即可如果要更改某一處規(guī)則名的話,在該列規(guī)則名稱處單擊滑鼠右鍵,在出現(xiàn)的快捷菜單中選取重命名即可。也可以在查詢分析器下執(zhí)行sp_rename來更改規(guī)則的名稱,以下是sp_rename的語法:sp_rename舊規(guī)則名稱,新規(guī)則名稱
7.7.2規(guī)則二、創(chuàng)建規(guī)則
在企業(yè)管理器主介面下利用滑鼠選擇要創(chuàng)建規(guī)則的資料庫,將其展開。選取“規(guī)則”單擊滑鼠右鍵,在出現(xiàn)的快捷菜單中選取“新建規(guī)則”
在“名稱”處輸入規(guī)則的名稱,在“文本”處輸入該規(guī)則運算式。規(guī)則的條件運算式必須以局部變數(shù)名稱起頭(也即第一個字元必須為“@”),該變數(shù)名稱可以隨意取名。三、使用CREATERULE命令創(chuàng)建規(guī)則
CREATERULE命令的語法如下:CREATERULE[擁有者.]規(guī)則名稱AS條件運算式(規(guī)則的定義)。
7.7.2規(guī)則
規(guī)則的定義可以是用於WHERE條件子句中的任何運算式,可包含算術運算符,關係運算符和謂詞(如IN,LIKE,BETWEEN等)。
[例11]
創(chuàng)建學生性別規(guī)則。
createruleru_sexas@sexin('男','女')
四、用存儲過程查看規(guī)則使用sp_helptext存儲過程可以查看規(guī)則的細節(jié),其語法規(guī)則如下:
sp_helptext[@objname=]'name'
其中,[@objname=]'name'子句指明對象的名稱,sp_helptext存儲過程查看的對象可以是當前資料庫中的規(guī)則,默認,觸發(fā)器,視圖或為加密的存儲過程。
7.7.2規(guī)則[例12]
查看名稱為“ru_sex”的規(guī)則的內容。
execsp_helptext'ru_sex'
五、規(guī)則的綁定與鬆綁當規(guī)則創(chuàng)建好後它必須和表內的列綁定才可以發(fā)揮作用。要將規(guī)則定義與表列綁定,首先在企業(yè)管理器下單擊資料庫的對象“規(guī)則”,即可在右邊的窗口中看到已創(chuàng)建的規(guī)則名稱,在相應的規(guī)則名稱上面單擊滑鼠右鍵,從快捷菜單中選擇“屬性”選項,會出現(xiàn)“規(guī)則屬性”對話框在“規(guī)則屬性”對話框中,單擊“綁定UDT”按鈕,則出現(xiàn)“綁定規(guī)則到用戶自定義數(shù)據(jù)類型”的對話框,單擊“綁定列”按鈕則出現(xiàn)“將規(guī)則綁定到列”的對話框。
7.7.2規(guī)則
在該對話框中,在“表”所對應的下拉列表中,選擇相應的數(shù)據(jù)表(如STUDENT表),在左邊“未綁定的列”列表只能單擊要綁定的某個列(如sex),然後單擊“添加”按鈕,將該列添加到“綁定列”中,最後單擊“確定”,這時規(guī)則就被綁定到所選定的列上了。除了用企業(yè)管理器綁定規(guī)則外,還可以使用存儲過程綁定規(guī)則。
(1)存儲過程sp_bindrule可以將一個規(guī)則綁定到表的一列或一個用戶自定義數(shù)據(jù)類型上。其語法如下:
sp_bindrule[@rulename=]'rule',[@objname=]'object_name'[,'futureonly']7.7.2規(guī)則各參數(shù)說明如下:①[@rulename=]'rule'指定規(guī)則名稱。②[@objname=]'object_name'指定規(guī)則綁定的對象。③'futureonly'選項僅在綁定規(guī)則到用戶自定義數(shù)據(jù)類型上時才可以使用。當指定此選項時,只有以後使用此用戶自定義數(shù)據(jù)類型的列會應用新規(guī)則,而當前已經(jīng)使用此數(shù)據(jù)類型的列不受影響。[例13]
綁定規(guī)則ru_sex到s表的字段sex。
execsp_bindrule'ru_sex','s.sex'
注意:規(guī)則對已經(jīng)輸入表中的數(shù)據(jù)不起作用。與表的列綁定的規(guī)則優(yōu)先於與用戶自定義數(shù)據(jù)類型綁定的規(guī)則。因此,如果表的列的數(shù)據(jù)類型與規(guī)則A綁定,同時列又與規(guī)則B綁定,則以規(guī)則B為列的規(guī)則。7.7.2規(guī)則(2)用存儲過程sp_unbindrule其語法格式如下:sp_unbindrule[@objname=]'object_name'[,'futureonly']
其中,‘futureonly’選項同綁定時一樣,僅用於用戶自定義數(shù)據(jù)類型,它指定現(xiàn)有的用此用戶自定義數(shù)據(jù)類型定義的列仍然保持與此規(guī)則的綁定。
[例14]
解除已綁定到S表的字段sex的規(guī)則ru_sex。
execsp_unbindrule'ru_sex‘六、刪除規(guī)則(1)用企業(yè)管理器刪除規(guī)則。注意:在刪除一個規(guī)則前必須先將與其綁定的對象解除綁定。
7.7.3默認
[例15]
刪除上面已創(chuàng)建的規(guī)則ru_sex。DROPRULEru_sex
所謂默認(default)是用戶輸入記錄時沒有指定具體數(shù)據(jù)的列中自動插入的數(shù)據(jù)。1創(chuàng)建默認
(1)用CREATEDEFAULT命令創(chuàng)建默認
CREATEDEFAULT命令用於在當前資料庫中創(chuàng)建默認對象,其語法如下:CREATEDEFAULTdefault_nameASconstant_expression其中,default_name是要創(chuàng)建的默認的名稱,constant7.7.3默認expression子句是默認的定義,該子句可以是數(shù)學運算式或函數(shù),也可以包含表的列名或其他資料庫對象。[例16]
創(chuàng)建年齡的默認值age_defa。CREATEDEFAULTage_defaas'20'設定默認值後,當用戶在輸入記錄數(shù)據(jù)時,如果未提供字段age的值,系統(tǒng)將自動默認其值為“20”歲。(1)用企業(yè)管理器查看默認(2)用企業(yè)管理器創(chuàng)建默認
2.查看和修改默認(1)用企業(yè)管理器查看默認
(2)用存儲過程sp_helptext查看默認使用sp_helptext存儲過程可以查看默認的資訊。[例17]
查看sex_defa的默認。execsp_helptextsex_defa7.7.3默認3.默認的綁定與鬆綁創(chuàng)建默認後,默認僅僅是一個存在於資料庫中的對象,並未發(fā)生作用,默認同規(guī)則一樣,需要將它與資料庫表或用戶自定義對象綁定。
(1)用企業(yè)管理器管理默認的綁定用企業(yè)管理器管理默認的綁定,方法如下:在企業(yè)管理器的左側窗格中,展開相應的資料庫目錄,資料庫的對象“默認”上面單擊右鍵,這時在右側窗格中即可看到已建立的各個默認的資訊,在某個默認的名稱上面單擊右鍵,從快捷菜單中選擇“屬性”菜單項,即會出現(xiàn)“默認屬性”對話框。單擊“綁定UDT”按鈕,則出現(xiàn)“綁定默認到表的列”的對話框。用他們來管理默認與表的列以及用戶自定義數(shù)據(jù)類型之間的綁定非常方便。
7.7.3默認(2)用存儲過程sp_bindefault綁定默認存儲過程sp_bindefault可以將一個默認綁定到表的一列或一個用戶自定義數(shù)據(jù)類型上。其語法如下:sp_bindefault[@defname=]'default',[@objname=]'object_name'[,'futureonly'][例18]綁定默認sex_defa到數(shù)據(jù)表S的sex上。execsp_bindefaultsex_defa,'S.[sex]‘4.刪除默認(1)用企業(yè)管理器刪除默認(2)使用DROPDEFAULT命令刪除默認使用DROPDEFAULT命令刪除當前資料庫中的一個或多個默認,其語法如下:DROPDEFAULT{默認名}[,…n]7.7.3默認[例19]
刪除學生性別的默認值sex_defa。DROPDEFAULTsex_defa注意:刪除一個默認值前必須先將與其綁定的對象解除綁定。7.8數(shù)據(jù)查詢
資料庫是為更方便有效的管理數(shù)據(jù)而存在的,人們希望可以隨時提供有效的所需要的數(shù)據(jù)資訊。因此,對用戶來說,數(shù)據(jù)查詢是資料庫最重要的功能。在資料庫中數(shù)據(jù)查詢是通過SELECT語句來完成的。SELECT語句可以從資料庫中按用戶要求檢索數(shù)據(jù),並將查詢結果以表格的形式返回。[例20]
查詢系科為“電腦”系的學生的學號和姓名,並把查詢結果存放到變數(shù)@sno和@sn中。命令為:
declare@snovarchar(10)declare@snvarchar(10)select@sno=sno,@sn=snfromswheresept='電腦'SELECT@local_variable通常用於將單個值返回到變數(shù)中。
7.8數(shù)據(jù)查詢
如果SELECT語句返回多個值,則將返回的最後一個值賦給變數(shù)。如果SELECT語句沒有返回行,變數(shù)將保留當前值。如果expression是不返回值的標量子查詢(集合形式),則將變數(shù)設為NULL。
7.9視圖
視圖是與基本表同等重要的概念,在第3章已有介紹,這裏主要介紹關於它的互動式介面7.9視圖操作與管理的內容。7.9.1創(chuàng)建視圖一、使用創(chuàng)建視圖嚮導使用創(chuàng)建視圖嚮導創(chuàng)建視圖的步驟如下:(1)打開企業(yè)管理器,選擇工具→嚮導,打開“選擇嚮導”對話框,在“選擇嚮導”對話框中展開“資料庫”節(jié)點,並選擇它的下一級節(jié)點“創(chuàng)建視圖嚮導”,單擊“確定”按鈕繼續(xù)(如圖7.31所示),此時會出現(xiàn)“歡迎使用創(chuàng)建視圖嚮導”對話框,在該對話框中單擊“下一步”。(2)在如圖7.32的窗口中選擇需要的資料庫,單擊“下一步”。這裏選擇student資料庫。
7.9.1創(chuàng)建視圖
(3)在如圖7.33所示的窗口中選擇資料庫的對象,方法是在選擇對象的“包含在視圖中”中選種複選框,單擊“下一步”。(4)選擇將在視圖中顯示的所有字段,單擊“下一步?!保?)在“定義限制”窗口中輸入WHERE語句(如圖7.34)所示(6)在“命名視圖”中輸入視圖名稱。(7)在“完成創(chuàng)建視圖嚮導”對話框中單擊“確定”即可。二、在企業(yè)管理器中互動式創(chuàng)建視圖在企業(yè)管理器中,展開指定的資料庫,點按“視圖”,按滑鼠右鍵,從彈出的快捷菜單中選擇“新建視圖”菜單項;
7.9.2管理視圖一、查看和修改視圖(1)方法1①啟動企業(yè)管理器,登錄到指定的伺服器。
②打開要查看或修改視圖的資料庫檔夾,選種“視圖”圖示,此時在右面的窗格中顯示當前資料庫的所有視圖。
③在右面窗格中,用右鍵單擊要查看的視圖,在彈出的菜單中選擇“屬性”菜單項,打開“視圖屬性”對話框。
④在該對話框內可流覽到該視圖的SQL文本,也可以對該視圖進行修改,然後單擊“檢查語法”按鈕來對語句合法性進行檢查。若要對視圖的訪問許可權進行設置,單擊“許可權”即可。(2)方法27.9.2管理視圖②打開要查看或修改視圖的資料庫檔夾,選種“視圖”圖示,此時在右面的窗格中顯示當前資料庫的所有視圖。
③在右面窗格中,用右鍵單擊要查看的視圖,在彈出的菜單中選擇“設計視圖”菜單項,可即時進入到設計視圖的窗口,
④在該窗口中可按照創(chuàng)建視圖的方法對原有的視圖進行各種修改。二、使用存儲過程在SQLServer中有三個用於瞭解視圖資訊的關鍵存儲程,即sp_depends,sp_help和sp_helptext。其語法格式如下:sp_depends[@objname=]'object'
參數(shù):[@objname=]'object'下麵的命令列出依賴
Student表的資料庫對象。7.9.2管理視圖EXECsp_depends'Student'
三、刪除視圖除了SQL命令刪除視圖外,在SQLServer中,通過企業(yè)管理器也可刪除視圖。(1)啟動企業(yè)管理器,登錄到指定的伺服器。(2)打開要刪除視圖的資料庫檔夾,選種“視圖”,此時在右面的窗格中顯示當前資料庫的所有視圖。(3)在右窗格中,用右鍵單擊要刪除的視圖,在彈出菜單中選擇“刪除”菜單項即可刪除視圖。7.10備份和還原
資料庫的備份和還原是維護資料庫的安全性和完整性的重要組成部分。通過備份資料庫,可以防止因為各種原因而造成的數(shù)據(jù)破壞和丟失。還原是指在造成數(shù)據(jù)丟失和破壞以後利用備份來恢復數(shù)據(jù)的操作。7.10.1備份和還原概念
備份和還原是SQLServer的重要組成部分。備份是對SQLServer資料庫或事務日誌進行複製,資料庫備份記錄了在進行備份這一操作時資料庫中所有數(shù)據(jù)的狀態(tài),如果資料庫因意外而損壞,這些備份檔將在資料庫還原時用來還原資料庫。
一、資料庫備份的類型7.10.1備份和還原概念SQLServer2000提供了四種主要的備份方式:資料庫備份,事務日誌備份,差異備份,檔和文件組備份。下麵分別介紹:(1)資料庫備份資料庫備份是指對數(shù)據(jù)庫的完整備份,包括所有的數(shù)據(jù)以及資料庫對象。
(2)事務日誌備份事務日誌備份是指對數(shù)據(jù)庫發(fā)生的事務進行備份,包括從上次進行事務日誌備份,差異備份和數(shù)據(jù)庫完全備份之後,所有已經(jīng)完成的事務。(3)差異備份
7.10.1備份和還原概念
差異備份是指將最近一次數(shù)據(jù)庫備份以來發(fā)生的數(shù)據(jù)變化備份起來。
(4)檔和文件組備份檔或檔組備份是指對數(shù)據(jù)庫檔或檔組進行部分,但它不象完整的資料庫備份那樣同時也進行事務日誌備份。使用該備份方法可提高資料庫還原的速度,因為它僅對遭到破壞的檔或檔組進行還原。二、備份和還原的策略(1)如果只進行資料庫備份,那麼將無法還原自最近一次數(shù)據(jù)庫備份以來資料庫中所發(fā)生的所有事務。
7.10.1備份和還原概念
(2)如果在進行資料庫備份時也進行事務日誌,那麼可以將資料庫還原到失敗點。從以上問題可以看出,對數(shù)據(jù)庫一致的要求程度成為我們選擇備份方案的主要的普遍性的問題。另外需要注意的是我們在備份時要決定應使用哪種備份設備,如磁片或磁帶,並且決定如何在備份設備上創(chuàng)建備份,比如將備份添加到備份設備上或將其覆蓋。
7.10.2創(chuàng)建備份和還原
在進行備份前必須先創(chuàng)建備份設備。備份設備是用來存儲資料庫、事務日誌或檔和文件組備份的存儲介質。
1.如何創(chuàng)建磁片備份設備(企業(yè)管理器)
①展開伺服器組,然後展開伺服器。
②展開"管理"檔夾,右擊"備份",然後單擊"新建備份設備"命令。如圖7.367.10.2創(chuàng)建備份和還原③在“名稱”框中輸入該命名備份設備的名稱。
④單擊"檔案名",然後執(zhí)行下列操作之一:輸入磁片備份設備所使用的檔案名。單擊流覽(“...”)按鈕顯示“備份設備位置”對話框,再選擇磁片備份設備所使用的本地電腦上的物理檔。
2.如何刪除備份設備(使用企業(yè)管理器)
①展開伺服器組,然後展開伺服器。
②展開"管理"檔夾,然後單擊"備份"。
③在詳細資訊窗格中,右擊要刪除的命名備份設備。7.10.2創(chuàng)建備份和還原
④單擊"刪除"命令並確認刪除。使用存儲過程管理備份設備:(1)使用sp_addumpdevice創(chuàng)建備份設備sp_addumpdevice[@devtype=]'device_type',[@logicalname=]'logical_name',[@physicalname=]'physical_name'[,{[@cntrltype=]controller_type|[@devstatus=]'device_status'}][例21]下麵的示例添加一個名為MYDISKD的磁片備份設備。
USEmasterEXECsp_addumpdevice'disk','mydiskd','c:\dump\dump1.bak'7.10.2創(chuàng)建備份和還原[例22]
下麵的示例顯示一個遠程磁片備份設備。USEmasterEXECsp_addumpdevice'disk','networkdevice','\\servername\sharename\path\filename.ext'[例23]
下麵的示例添加TAPEDUMP1設備,其物理名稱為\\.\Tape0。USEmasterEXECsp_addumpdevice'tape','tapedump1','\\.\tape0'7.10.2創(chuàng)建備份和還原
sp_dropdevice刪除備份設備,其語法格式為:
sp_dropdevice[@logicalname=]'device'[,[@delfile=]'delfile']其中,[@logicalname=]'device'資料庫設備或備份設備的邏輯名稱,device
的數(shù)據(jù)類型為
sysname,沒有默認值。[@delfile=]'delfile'指出是否應該刪除物理備份設備檔。[例24]下麵的示例從SQLServer除去TAPEDUMP1磁帶轉儲設備。sp_dropdevice'TAPEDUMP1'
7.10.3資料庫備份
在SQLServer中無論是資料庫備份,還是事務日誌備份,差異備份,檔和文件組備份都執(zhí)行同樣的步驟,。(1)展開伺服器組,然後展開伺服器。(2)展開“資料庫”檔夾,右擊資料庫,指向“所有任務”子菜單,然後單擊“備份資料庫”命令。如圖7.38
(3)在該對話框中的“常規(guī)“選項卡中的”備份“選項欄內選擇要進行備份的類型。(4)通過“添加“按鈕來選擇備份的設備。(5)若選擇了“重寫“選項欄中的重寫現(xiàn)有媒體,則將原備份覆蓋。
(6)“調度”複選框,可對備份的時間表進行設置。7.10.4還原資料庫1.
展開伺服器組,然後展開伺服器。2.
展開“資料庫”檔夾,右擊資料庫,指向“所有任務”子菜單,然後單擊“還原資料庫”命令。在“還原為數(shù)據(jù)庫”框中,如果要還原的資料庫名稱與顯示的默認資料庫名稱不同,請在其中進行輸入或選擇。單擊“資料庫”。5.
在"要還原的第一個備份"列表中,選擇要還原的備份集。6
.
在"還原"列表中,單擊要還原的資料庫備份。7.10.4還原資料庫
單擊"選項"選項卡並執(zhí)行下列操作:(可選)①在"還原為"中輸入組成資料庫備份的各資料庫檔的新名稱或新位置。②單擊"使資料庫可以繼續(xù)運行,但無法還原其他事務日誌",如果沒有其他要應用的事務日誌或差異資料庫備份。③如果要應用另一個事務日誌或差異資料庫備份,則單擊"使資料庫不再運行,但能還原其他事務日誌"。
7.在設置完選項後,單擊“確定“即可。
7.10.5備份和還原系統(tǒng)資料庫
系統(tǒng)資料庫保存了有關SQLServer的許多重要數(shù)據(jù)相信,這些數(shù)據(jù)的丟失將給系統(tǒng)帶來極為嚴重的後果。所以我們也必須對數(shù)據(jù)庫進行備份。這樣一旦系統(tǒng)或資料庫丟失,則可以通過還原來重建系統(tǒng)資料庫。在SQLServre中,重要的系統(tǒng)資料庫主要有master,msdb,model。雖然tempdb也是系統(tǒng)資料庫,但沒有必要對其進行備份,因為SQLServre每次啟動都會重新創(chuàng)建該資料庫,而當SQLServer停止運行時,tempdb資料庫中所有數(shù)據(jù)都會被自動清除。在這裏我們主要討論master資料庫的備份和還原問題。7.10.5備份和還原系統(tǒng)資料庫(1)增加或刪除用戶數(shù)據(jù)庫。但是如果增加或刪除檔或檔組,或用戶數(shù)據(jù)庫自動增加來容納新添加的數(shù)據(jù),這些操作並不對master資料庫產(chǎn)生影響,所以此時不必對它進行備份。(2)創(chuàng)建新的登錄或執(zhí)行與登錄有關的操作。但是增加資料庫用戶並不影響master資料庫。(3)更改任何伺服器範圍的配置選項或資料庫配置選項。(4)創(chuàng)建或刪除備份設備。(5)為進行分佈式查詢或遠程過程調用而對數(shù)據(jù)庫伺服器進行配置,如增加連接伺服器或遠程登錄等7.10.5備份和還原系統(tǒng)資料庫
使用RebuildMasterUtility來重建master資料庫,主要執(zhí)行以下步驟。(1)關掉SQLServer,然後運行位於“…/MicrosoftSQLServer/80/tools/Binn”下的Rebuildm.exe檔,出現(xiàn)“重建master”對話框。(2)在出現(xiàn)的對話框中單擊“流覽”按鈕來流覽包括Data檔的原始目錄。(3)單擊“設置”按鈕出現(xiàn)“排序規(guī)則設置”對話框。(4)單擊“重建”按鈕來重建master資料庫。將資料庫移到另外的伺服器或磁片上需要進行以下操作。7.10.5備份和還原系統(tǒng)資料庫(1)拆開資料庫(2)把資料庫檔(資料庫檔和事務日誌檔)移到另外的伺服器或磁片上。(3)連接伺服器並定義資料庫檔的存放位置。在SQLServer中,拆開資料庫使用的Transact-SQL命令是sp_detach_db,其語法格式為:sp_detach_db[@dbname=]'dbname'[,[@skipchecks=]'skipchecks']
其中,@dbname表示資料庫名稱;@skipchecks如果為True將修改關於資料庫的所有統(tǒng)計表,反之則不修改。
7.10.5備份和還原系統(tǒng)資料庫[例25]
拆開pubs資料庫。
execsp_detach_db'pubs','true'
使用sp_attach_db來重新連接資料庫,其語法格式為:
sp_attach_db[@dbname=]'dbname',[@filename1=]'filename_n'[…16][例26]重新連接pubs資料庫
execsp_attach_db@dbname=N'pubs','c:\mssql7\data\pubs.mdf','c:\mssql7\data\pubs.log'7.11SQLServer程式設計初步*
Transact-SQL語言是SQLServer對標準SQL語言的擴充,如:引入了程式設計的思想,增強了程式的流程控制語句等。因此,在Transact-SQL語言中,標準的SQL語句可暢通無阻。Transact-SQL語言最主要的用途是設計伺服器的能夠在後臺執(zhí)行的程式塊,如:存儲過程,觸發(fā)器等。7.11.1Transact-SQL簡介一、在Transact-SQL中可以使用兩種變數(shù):局部變數(shù)和全局變數(shù)1.局部變數(shù)局部變數(shù)是用戶可以自定義的變數(shù),它的作用範圍僅在程式內部。局部變數(shù)在程式中通常用來存儲從表中查詢到的數(shù)據(jù),或當做程式執(zhí)行過程中暫存變數(shù)。局部變數(shù)必須以@開頭,而且必須先用DECLARE命令說明後才可使用。其語法形式如下:
DECLARE@變數(shù)名變數(shù)類型[,@變數(shù)名變數(shù)類型……]
其中變數(shù)類型可以是SQLServer2000支持的所有數(shù)據(jù)類型。7.11.1Transact-SQL簡介
在Transact-SQL中不能像在一般的程式語言中一樣使用“變數(shù)=變數(shù)值”來給變數(shù)賦值,必須使用SELECT或SET命令來設定變數(shù)的值。其語法如下:
SELECT@局部變數(shù)=變數(shù)值
SET@局部變數(shù)=變數(shù)值例27]
聲明兩個變數(shù)並賦值。
USENorthwind
GODECLARE@FirstNameVariableNVARCHAR(20),@RegionVariableNVARCHAR(30)SET@FirstNameVariable=N'Anne'SET@RegionVariable=N'WA'7.11.1Transact-SQL簡介2.全局變數(shù)全局變數(shù)是SQLServer2000系統(tǒng)內部使用的變數(shù),其作用範圍並不局限於某一程式,而是任何程式均可隨時調用。全局變數(shù)通常存儲一些SQLServer2000的配置設定值和效能統(tǒng)計數(shù)據(jù)。用戶可在程式中用全局變數(shù)來測試系統(tǒng)的設定值或Transact-SQL命令執(zhí)行後的狀態(tài)值。全局變數(shù)不是由用戶的程式定義的,而是有系統(tǒng)定義和維護的,只能使用預先說明及定義的全局變數(shù)。引用全局變數(shù)時必須以“@@”開頭。SQLServer提供的全局變數(shù)共有33個,但並不是每個都可用,而且局部變數(shù)與全局變數(shù)不能同名。否則會在應用中出錯。
7.11.1Transact-SQL簡介3.注釋符在Transact-SQL中可使用兩類注釋符:(1)ANSI標準的注釋符“--”用於單行注釋;(2)與C語言相同的程式注釋符號,即“/*……*/”,“/*”用於程式注釋開頭,“*/”用語程式注釋結尾,可以在程式中多行文字標示為注釋。二、流程控制語句
1.BEGIN…END1.BEGIN…END語句用於將多個Transact-SQL語句組合為一個邏輯塊。
7.11.1Transact-SQL簡介其語法格式如下:BEGIN<命令行或程式塊>ENDBEGIN和END語句必須成對使用:任何一條語句均不能單獨使用。BEGIN語句行後為Transact-SQL語句塊。最後,END語句行指示語句塊結束。BEGIN和END語句用於下列情況:(1)WHILE迴圈需要包含語句塊。(2)CASE函數(shù)的元素需要包含語句塊。(3)IF或ELSE子句需要包含語句塊。BEGIN...END語句塊允許嵌套。
7.11.1Transact-SQL簡介2.IF…ELSEIF…ELSE的語法格式如下:IF<條件運算式><命令行或程式塊>ELSE<條件運算式><命令行或程式塊>
IF語句用於條件的測試。結果流的控制取決於是否指定了可選的ELSE語句:
(1)指定IF而無
ELSE:IF語句取值為TRUE時,執(zhí)行IF語句後的語句或語句塊。IF語句取值為FALSE時,跳過IF語句後的語句或語句塊。
2.IF…ELSEIF…ELSE的語法格式如下:IF<條件運算式><命令行或程式塊>ELSE<條件運算式><命令行或程式塊>IF語句用於條件的測試。結果流的控制取決於是否指定了可選的ELSE語句:
(1)指定IF而無ELSE:IF語句取值為TRUE時,執(zhí)行IF語句後的語句或語句塊。IF語句取值為FALSE時,跳過IF語句後的語句或語句塊。7.11.1Transact-SQL簡介[例29]下麵的示例顯示帶有語句塊的IF條件。如果DB原理書的平均價格不低於15元,那麼就顯示文本:DB原理書的總價高於15元。
USEpubsIF(SELECTAVG(price)FROMtitlesWHEREname='DB原理')<15BEGINPRINT'書價不正確!'ENDELSEPRINT'DB原理書的總價高於15元'
7.11.1Transact-SQL簡介3.CASE計算條件列表並返回多個可能結果運算式之一。CASE具有兩種格式:(1)簡單CASE函數(shù)將某個運算式與一組簡單運算式進行比較以確定結果。(2)CASE搜索函數(shù)計算一組布爾運算式以確定結果。兩種格式都支持可選的ELSE參數(shù)。CASE的語法格式為:格式1:CASE<運算式>WHEN<運算式>THEN<運算式>…7.11.1Transact-SQL簡介WHEN<運算式>THEN<運算式>[ELSE<運算式>]END該語句的執(zhí)行過程是:將CASE後面運算式的值與各WHEN子句中的運算式的值進行比較,如果二者相等,則返回THEN後的運算式的值,然後跳出CASE語句,否則返回ELSE子句中的運算式的值。ELSE子句是可選項。當CASE語句中不包含ELSE子句時,如果所有比較失敗,CASE語句將返回NULL。[例30]
從學生表S中,選取SNO,SEX,如果SEX為“男”則輸出“M”,如果為“女”則輸出“F”。
7.11.1Transact-SQL簡介SELECTSNO,SEX=CASESEXWHEN'男'THEN'M'WHEN'女'THEN'F'ENDFROMS格式2:CASEWHEN<條件運算式>THEN<運算式>…WHEN<條件運算式>THEN<運算式>END7.11.1Transact-SQL簡介[例31]
從SC表中查詢所有同學選課成績情況,凡成績?yōu)榭照咻敵觥叭笨肌保§?0分的輸出“不及格”,60分至70分輸出“及格”,70分至90分輸出“良好”,大於或等於90分的輸出“優(yōu)秀”。SELECTSNO,CNO,SCORE=CASEWHENSCOREISNULLTHEN'未考'WHENSCORE<60THEN'不及格'WHENSCOREBETWEEN60AND69THEN'及格'WHENSCOREBETWEEN70AND89THEN'良好'WHENSCORE>=90THEN'優(yōu)秀'7.11.1Transact-SQL簡介4.WHILE…CONTINUE…BREAK
只要指定的的條件為真,則WHILE語句重複語句或語句塊。BREAK語句退出最內層WHILE迴圈,CONTINUE語句重新開始WHILE迴圈。如果沒有其他行可以處理,則程式可能執(zhí)行BREAK語句。如果要繼續(xù)執(zhí)行代碼,則可執(zhí)行CONTINUE語句。
WHILE…CONTINUE…BREAK的語法格式如下:
WHILE<條件運算式>BEGIN<命令行或程式塊>7.11.1Transact-SQL簡介
5.WAITFORWAITFOR命令用來暫時停止程式執(zhí)行,直到所設定的等待時間已過或所設定的時間已到才繼續(xù)往下執(zhí)行。其中“時間”必須為DATETIME類型的數(shù)據(jù),但不能包括日期。各關鍵字含義如下:(1)DELAY:用來設定等待的時間,最多可達24小時(2)TIME:用來設定等待結束的時間點(3)ERROREXIT:直到處理非正常中斷(4)PROCESSEXIT:直到處理正?;蚍钦V袛啵?)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年高級會計實務與操作訓練題目
- 2026年新媒體運營與策劃專業(yè)知識測試題集
- 2025至2030中國零售業(yè)線上線下融合與消費行為研究報告
- 2026年新能源汽車原理及駕駛安全要點試題
- 2026一季度浙商銀行深圳分行社會招聘備考考試題庫及答案解析
- 鋼鐵廠安全生產(chǎn)試題及答案
- 法醫(yī)學期末考試題及答案
- 2026陜西西安市長安區(qū)村鎮(zhèn)建設管理站公益性崗位招聘8人備考考試試題及答案解析
- 2026年體育訓練與運動技能掌握測試題
- 電工一級試題及答案
- 叉車初級資格證考試試題與答案
- 2025年中國醫(yī)學科學院研究所招聘面試高頻問題答案與解析
- 2025至2030中國新癸酸縮水甘油酯行業(yè)發(fā)展研究與產(chǎn)業(yè)戰(zhàn)略規(guī)劃分析評估報告
- 剪映完整課件
- DB32∕T 310026-2024 雷電防護裝置檢測部位及檢測點確認技術規(guī)范
- 2025新能源集控中心規(guī)范化管理導則
- 2025屆新疆烏魯木齊市高三下學期三模英語試題(解析版)
- 混動能量管理與電池熱管理的協(xié)同優(yōu)化-洞察闡釋
- T-CPI 11029-2024 核桃殼濾料標準規(guī)范
- 統(tǒng)編版語文三年級下冊整本書閱讀《中國古代寓言》推進課公開課一等獎創(chuàng)新教學設計
- 2025年江蘇省蘇州市初三上學期物理期末陽光調研測試卷及答案
評論
0/150
提交評論