




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
SQLServer2000資料庫管理系統(tǒng)7.1SQLServer2000的簡介
SQLServer是一種關(guān)係資料庫,它除了支持傳統(tǒng)關(guān)係資料庫組件(如數(shù)據(jù)庫,表)和特性(如表的join)外,另外也支持當(dāng)今關(guān)係資料庫常用的組件,如存儲過程,視圖等。SQLServer支持關(guān)係資料庫國際標(biāo)準(zhǔn)語言——SQL(它稱為Transact-SQL)。SQLServer另外的一項(xiàng)重要的特點(diǎn)是它支持資料庫複製的功能。
SQLServer2000包含有6種不同的版本:
(1)企業(yè)版(EnterpriseEdition)作為各種企業(yè)、單位或組織的資料庫伺服器使用
(2)標(biāo)準(zhǔn)版(StandardEdition)用於小型的工作組或部門7.1SQLServer2000的簡介
(3)個(gè)人版(PersonalEdition)用於單機(jī)系統(tǒng)或客戶機(jī)(4)開發(fā)者版(DeveloperEdition)用於程式員開發(fā)應(yīng)用程式時(shí),將SQLServer2000作為其數(shù)據(jù)存儲區(qū)。(5)WindowsCE版安裝於執(zhí)行WindowsCE的個(gè)人數(shù)字助理上(PDA),它能複製任何SQLServer2000版本的數(shù)據(jù),使WindowsCE數(shù)據(jù)能與公司的主要資料庫同步。
(6)評測版SQLServer2000評測版是一個(gè)功能基本齊全的版本,該版本主要用來評估SQLServer2000的功能。
7.1SQLServer2000的簡介
一、SQLServer2000的新特性(1)在關(guān)係資料庫方面的增強(qiáng)
1.XML支持
2.用戶定義函數(shù)和新的數(shù)據(jù)類型
3.索引視圖,索引增強(qiáng)
4.分佈式查詢
5.備份和還原
6.級聯(lián)參考完整性約束
8.排序規(guī)則(2)圖形管理工具增強(qiáng)
1.日誌傳送功能
2.SQL事件探查器增強(qiáng)
7.1SQLServer2000的簡介
3.SQL查詢分析器增強(qiáng)
4.複製資料庫嚮導(dǎo)二、SQLServer2000的主要組件作為一個(gè)完善的資料庫管理系統(tǒng),SQLServer2000提供了一些功能強(qiáng)大,使用方便的資料庫管理工具。下麵,對這些組件一個(gè)簡單的介紹.
1、企業(yè)管理器(EnterpriseManager)
企業(yè)管理器是SQLServer中最重要的管理工具
2、查詢分析器(QueryAnalyzer)
查詢分析器用於執(zhí)行Transact-SQL命令等SQL腳本程式,以查詢分析或處理資料庫中的數(shù)據(jù)。
3
、
服務(wù)管理器(ServiceManager)
7.1SQLServer2000的簡介
服理器用於啟動、暫停或停止SQLServer的四種服務(wù),即分佈式事務(wù)協(xié)調(diào)器(DistributedTransactionCoordinator,DTC)、MSSQLServerOLAPservice、SQLServer和SQLServerAgent。
4、客戶端網(wǎng)路實(shí)用工具(ClientNetworkUtility)
5、伺服器端網(wǎng)路實(shí)用工具(ServerNetworkUtility)伺服器端網(wǎng)路實(shí)用工具用於配置伺服器端的連接、測定網(wǎng)路庫的版本資訊
6、導(dǎo)入和導(dǎo)出數(shù)據(jù)(ImportandExportData)7、在IIS中配置SQLXML支持(ConfigureSQLXMLSupportinIIS)7.1SQLServer2000的簡介
8、事件探查器(Profiler)
事務(wù)探查器的功能是監(jiān)視SQLServer資料庫系統(tǒng)引擎事件,主要用於監(jiān)聽SQLServer系統(tǒng)的運(yùn)行性能。
9、聯(lián)機(jī)叢書(BookOnline)
SQLServer2000提供了大量的聯(lián)機(jī)文檔,用戶可以便捷地查到許多很有價(jià)值的資訊。一個(gè)優(yōu)秀的SQLServer管理員必然是使用聯(lián)機(jī)文檔的高手。7.1SQLServer2000的簡介圖7.1SQLServer2000工具菜單7.2企業(yè)管理器
企業(yè)管理器(EnterpriseManager)是SQLSERVER程式組中的最重要的程式之一,是管理伺服器和數(shù)據(jù)庫的主要工具??梢詮拈_始菜單命令“開始→程式→MicrosoftSQLServer→企業(yè)管理器”打開企業(yè)管理器。如圖7.27.2企業(yè)管理器
在企業(yè)管理器中包含兩個(gè)窗口,其中左側(cè)的窗口是以“樹狀目錄”顯示的活動窗口,右側(cè)是顯示內(nèi)容的窗口。1、樹狀目錄窗口
在左邊的樹狀目錄中,根節(jié)點(diǎn)是“控制面板根目錄”,表示它是所有伺服器控制面板的根。2、內(nèi)容窗口
企業(yè)管理器右邊的窗口為內(nèi)容窗口。在該窗口中顯示的是在樹狀目錄處於“焦點(diǎn)”狀態(tài)(或選種狀態(tài))的條目中包含的內(nèi)容。企業(yè)管理器中的菜單分為上下兩行,其中上面一行包括“控制面版”,“窗口”和“幫助”,通過這三個(gè)菜單項(xiàng)可以實(shí)現(xiàn)退出企業(yè)管理器。
7.3查詢分析器
查詢分析器(QueryAnalyzer)是SQLServer提供的使用方便,介面友好的Transact-SQL語句編譯工具,是SQLServer2000客戶端應(yīng)用程式的重要組成部分。用戶可以通過“開始”菜單或從SQLServer企業(yè)管理器內(nèi)運(yùn)行它。還可以通過執(zhí)行isqlw實(shí)用工具從命令提示符運(yùn)行SQL查詢分析器。啟動時(shí)系統(tǒng)首先打開“連接到SQLServer”對話框,如圖7.3所示。
7.3查詢分析器圖7.3啟動查詢分析器7.3查詢分析器
圖7.4查詢分析器到哪個(gè)SQLServer伺服器。選擇伺服器並設(shè)置正確使用該對話框可以指定連接的身份驗(yàn)證方式,單擊“確定”按鈕,即可打開SQLServer查詢分析器,如圖7.4所示7.3查詢分析器
查詢分析器左邊的窗口是“對象流覽器”,這個(gè)窗口是SQLServer2000中新增的窗口。該窗口包含兩個(gè)選項(xiàng)卡:
“對象”選項(xiàng)卡—用於流覽SQLServer中所有的資料庫對象,內(nèi)置函數(shù)和數(shù)據(jù)庫類型等;
“模版”選項(xiàng)卡—提供一些常用的程式模版,用戶可以在這些模版的基礎(chǔ)上進(jìn)行修改,以簡化Transact-SQL語言的輸入操作。7.4.1系統(tǒng)資料庫
SQLServer2000系統(tǒng)有四種系統(tǒng)資料庫:
1.master資料庫
master資料庫記錄SQLServer系統(tǒng)的所有系統(tǒng)級別資訊
2.tempdb資料庫
tempdb
資料庫保存所有的臨時(shí)表和臨時(shí)存儲過程。
3.model資料庫
model資料庫用作在系統(tǒng)上創(chuàng)建的所有資料庫的範(fàn)本(包括用戶數(shù)據(jù)庫和tempdb資料庫)。
4.msdb資料庫
SQLServer企業(yè)管理器和SQLServerAgent使用Msdb資料庫來執(zhí)行安排工作和警報(bào)以及記錄操作者等操作。7.4.2實(shí)例資料庫
也存儲在SQLServer2000默認(rèn)安裝目錄的Data目錄中。Pubs和Northwind資料庫可以作為SQLServer2000的學(xué)習(xí)工具。其中,pubs實(shí)例資料庫SQLServer2000有兩個(gè)實(shí)例資料庫:pubs和Northwind。與系統(tǒng)資料庫一樣,實(shí)例資料庫的檔存儲了一個(gè)虛構(gòu)的圖書出版公司的基本情況,Northwind實(shí)例資料庫包含了一個(gè)公司的銷售數(shù)據(jù),是一個(gè)虛構(gòu)的公司,該公司從事世界各地的特產(chǎn)食品進(jìn)出口貿(mào)易
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)建資料庫嚮導(dǎo);②在控制面板樹上選擇資料庫,然後選擇“新建資料庫”菜單命令直接創(chuàng)建用戶數(shù)據(jù)庫。資料庫創(chuàng)建嚮導(dǎo)簡單易用,但是它的使用在一定程度上限制了物理資料庫的複雜程度,所以在實(shí)際操作中並不常用。因此,我們主要討論第二種方法
7.4.3創(chuàng)建資料庫在企業(yè)管理器中直接創(chuàng)建用戶數(shù)據(jù)庫的步驟如下:(1)打開企業(yè)管理器(2)在控制面板目錄中選擇“資料庫”節(jié)點(diǎn)如下圖7.4.3創(chuàng)建資料庫(3)在“資料庫”節(jié)點(diǎn)上單擊右鍵,並在彈出的菜單中選擇“新建資料庫”
(4)在“名稱”文本框中輸入資料庫的名稱。(5)點(diǎn)擊“數(shù)據(jù)檔”選項(xiàng)卡?!皵?shù)據(jù)檔”是SQLServer2000用於實(shí)際存儲數(shù)據(jù)、索引等資料庫對象的檔。(6)點(diǎn)擊“日誌檔”選項(xiàng)卡指定事務(wù)日誌檔的名稱。
(7)單擊“確定”按鈕,則創(chuàng)建一個(gè)新資料庫7.4.4查看資料庫資訊1.用企業(yè)管理器查看資料庫資訊在企業(yè)管理器窗口中查看資料庫資訊的方法如下。(1)方法1:在企業(yè)管理器窗口中的左側(cè)目錄樹窗口中,展開“資料庫”檔夾,在某個(gè)資料庫名稱上先單左鍵,再單擊右鍵,在出現(xiàn)的快捷菜單中單擊“查看”中的“任務(wù)板”。(2)方法2:在企業(yè)管理器窗口中的左側(cè)目錄樹窗口中,展開“資料庫”檔夾,單擊某個(gè)資料庫名稱,然後單擊“查看”菜單,在其下拉菜單中單擊“任務(wù)板”
7.4.4查看資料庫資訊
操作完成後,在企業(yè)管理器窗口右側(cè)的“任務(wù)板中看到資料庫的“常規(guī)”資訊,“表”資訊和“嚮導(dǎo)”資訊。在打開資料庫檔夾目錄樹後,可以選擇各種資料庫對象進(jìn)行資訊流覽。7.4.5更改資料庫1.使用企業(yè)管理器修改資料庫的一個(gè)簡單快捷的方法是使用企業(yè)管理器,使用它修改資料庫結(jié)構(gòu)的步驟下:
(1)打開需要修改的用戶數(shù)據(jù)庫的資料庫屬性對話框。
(2)在屬性對話框中對相關(guān)內(nèi)容(如數(shù)據(jù)檔和事務(wù)日誌檔的屬性)進(jìn)行修改
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指定要增加檔到哪個(gè)檔組。(2)TOFILEGROUP指定要增加檔到哪個(gè)檔組。(3)ADDLOGFILE指定要增加的事務(wù)日誌檔。(4)REMOVEFILE從資料庫系統(tǒng)表中刪除指定檔的定義並且刪除其物理檔。檔只有為空時(shí)才能被刪除。(5)ADDFILEGROUP指定要增加的檔組。(6)REMOVEFILEGROUP從資料庫中刪除指定檔組的定義並且刪除其包括的所有資料庫檔。7.4.5更改資料庫
(7)MODIFYFILE修改指定檔的檔案名,容量大小,最大容量以及檔增容方式等屬性,但一次只能修改一個(gè)檔的一個(gè)屬性。使用此項(xiàng)時(shí)應(yīng)注意:在檔格式filespec中必須NAME明確指定檔的名稱,如果檔大小已經(jīng)確定,那麼新定義的size必須比當(dāng)前的檔容量大
(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壓縮資料庫
資料庫在使用一段時(shí)間後時(shí)常會出現(xiàn)因數(shù)據(jù)刪除而造成資料庫中空閒空間太多的情況,這時(shí)就需要減少分配給資料庫檔和事務(wù)日誌檔的磁片空間,以免浪費(fèi)磁片空間。當(dāng)資料庫中沒有數(shù)據(jù)時(shí),可以修改資料庫檔屬性,直接改變其佔(zhàn)用空間;但當(dāng)資料庫中有數(shù)據(jù)時(shí),這樣做會破壞資料庫中的數(shù)據(jù)。因此需要使用壓縮的、式來縮減資料庫空間。對數(shù)據(jù)庫可以進(jìn)行自動壓縮,也可以進(jìn)行人工壓縮。7.4.7壓縮資料庫1自動壓縮資料庫
2
人工壓縮資料庫(1)使用企業(yè)管理器壓縮
在企業(yè)管理器介面下在要被壓縮大小的資料庫上選擇單擊滑鼠右鍵,在快捷菜單中選取所有任務(wù)→收縮資料庫,
(2)用DBCCSHRINKDATABASE命令壓縮資料庫大小除了利用企業(yè)管理器來壓縮資料庫大小外,也可以使用DBCCSHRINKDATABASE命令來壓縮資料庫大小以刪除未使用使用空間。其語法格式如下:
7.4.7壓縮資料庫DBCCSHRINKDATABASE(資料庫名稱[,百分比][,{NOTRUNCATE|TRUNCATEONLY}])
說明:百分比:在資料庫被壓縮後,資料庫檔保留的空間比率
[例4]
壓縮資料庫student的未使用空間為數(shù)據(jù)庫大小50%。
dbccshrinkdatabase(student,50)
(3)使用DBCCSHRINKFILE改變資料庫檔大小
DBCCSHRINKFILE命令用於壓縮當(dāng)前資料庫中的檔,其語法如下:7.4.7壓縮資料庫BCCSHRINKFILE({檔案名稱|file_id},{[,新的檔大小]{EMPTYFILE|NOTRUNCATE|TRUNCATEONLDY}}))
[例5]
壓縮資料庫student中的數(shù)據(jù)檔student到1MB。
dbccshrinkfile(student,1)7.5管理數(shù)據(jù)表
創(chuàng)建了一個(gè)資料庫以後,就可以在該資料庫中創(chuàng)建表了。表是一種最重要的資料庫對象,它在資料庫中存儲數(shù)據(jù),可以創(chuàng)建自己的數(shù)據(jù)表。同時(shí)表也是用來存儲數(shù)據(jù)和運(yùn)算元據(jù)的邏輯結(jié)構(gòu),其結(jié)構(gòu)和電子錶格相似,有行和列組成。7.5.1用企業(yè)管理器創(chuàng)建數(shù)據(jù)表
在企業(yè)管理器中創(chuàng)建表按以下步驟進(jìn)行。(1)在要創(chuàng)建表的資料庫中選擇“表”對象後,單擊右鍵從快捷菜單中選擇“新建表”選項(xiàng)或在工具欄中選擇圖示,即會出現(xiàn)定義列對話框,如圖7.8所示在此可設(shè)定表的列名、數(shù)據(jù)類型、精度和缺省值等屬性。(2)將數(shù)據(jù)表中各列定義完畢後,單擊工具欄中的保存按鈕,即出現(xiàn)輸入新建表名的對話框。(3)輸入表名後,單擊“確定”按鈕,即會將表保存到資料庫中。
7.5.2修改表1.表的重新命名(1)在企業(yè)管理器中展開希望重新命名的表所在的資料庫節(jié)點(diǎn),然後選中該資料庫節(jié)點(diǎn)下一級菜單中的“表”節(jié)點(diǎn)。(2)在希望重新命名的表上單擊滑鼠右鍵,在彈出菜單上選擇命令“重命名”,輸入新的表名稱。(3)按回車鍵,在彈出的對話框內(nèi)單擊“確定”按鈕當(dāng)表創(chuàng)建好後,可以根據(jù)需要對表的列,約束等屬性進(jìn)行添加,刪除和修改。這就需要修改表結(jié)構(gòu)
2.修改數(shù)據(jù)表結(jié)構(gòu)打開希望修改表結(jié)構(gòu)的表設(shè)計(jì)窗口,在該窗口中可以執(zhí)行下列操作:7.5.2修改表(1)改數(shù)據(jù)表中字段定義(2)插入新字段如果希望為數(shù)據(jù)表添加新的字段,可以在某字段所在的行上單擊滑鼠右鍵,然後在彈
出菜單中選擇“插入列”命令,該字段前面會插入一個(gè)空白行,在空白行中編輯新字段即可。(3)刪除現(xiàn)有字段選中該字段並單擊滑鼠右鍵,在彈出菜單中選擇命令“刪除列”。3.修改表格屬性在表設(shè)計(jì)窗口中單擊“表和索引屬性”按鈕,打開表格屬性窗口,在該窗口中可以設(shè)置與整個(gè)表相關(guān)的重要屬性,如“表”,“關(guān)係”,“索引/鍵”,“CHECK約束”。7.5.2修改表(1)在要創(chuàng)建表的資料庫中選擇“表”對象後,單擊右鍵從快捷菜單中選擇“新建表”選項(xiàng)或在工具欄中選擇圖標(biāo),即會出現(xiàn)定義列對話框,如圖7.8所示在此可設(shè)定表的列名、數(shù)據(jù)類型、精度和缺省值等屬性。1)在要創(chuàng)建表的資料庫中選擇“表”對象後,單擊右鍵從快捷菜單中選擇“新建表”選項(xiàng)或在工具欄中選擇
(2)將數(shù)據(jù)表中各列定義完畢後,單擊工具欄中的保存按鈕,即出現(xiàn)輸入新建表名的對話框。(3)輸入表名後,單擊“確定”按鈕,即會將表保存到資料庫中。
7.5.2修改表1.表的重新命名
(1)在企業(yè)管理器中展開希望重新命名的表所在的資料庫節(jié)點(diǎn),然後選中該資料庫節(jié)點(diǎn)下一級菜單中的“表”節(jié)點(diǎn)。(2)在希望重新命名的表上單擊滑鼠右鍵,在彈出菜單上選擇命令“重命名”,輸入新的表名稱。(3)按回車鍵,在彈出的對話框內(nèi)單擊“確定”按鈕當(dāng)表創(chuàng)建好後,可以根據(jù)需要對表的列,約束等屬性進(jìn)行添加,刪除和修改。這就需要修改表結(jié)構(gòu)2.修改數(shù)據(jù)表結(jié)構(gòu)打開希望修改表結(jié)構(gòu)的表設(shè)計(jì)窗口,在該窗口中可以執(zhí)行下列操作:(1)改數(shù)據(jù)表中字段定義7.5.2修改表
(2)插入新字段
(3)刪除現(xiàn)有字段選中該字段並單擊滑鼠右鍵,在彈出菜單中選擇命令“刪除列”。
3.修改表格屬性
4.用存儲過程sp_rename修改表名和列名
sp_rename存儲過程可以修改當(dāng)前資料庫中用戶對象的名稱,如表,列,索引,存儲過程等。其語法如下:
7.5.2修改表
execsp_rename[@objname=]'object_name',[@newname=]'new_name'[,[@objtype=]'object_type']OBJECT值指代了系統(tǒng)表sysobjects中的所有對象,如表、視圖、存儲過程、觸發(fā)器、規(guī)則和約束等。OBJECT值為默認(rèn)值。
[例6]
更改s表中的列sno名稱為stusno。
execsp_rename's.sno','stusno','column'
7.5.3查看表1.查看表的屬性在企業(yè)管理器下選擇表名,單擊滑鼠右鍵,在出現(xiàn)的快捷菜單中選取“屬性”,將會出現(xiàn)如圖7.9的介面。在此介面中我們可以選擇“常規(guī)”以查看表結(jié)構(gòu),從中可以看到表的大部分屬性資訊,如數(shù)據(jù)表的名稱,所有者,創(chuàng)建日期,檔組,記錄的行數(shù),數(shù)據(jù)表中的字段名稱,結(jié)構(gòu)和類型等。在企業(yè)管理器下選擇表名,單擊滑鼠右鍵,在出現(xiàn)的快捷菜單中選取“屬性”,將會出現(xiàn)如圖7.9的介面。在此介面中我們可以選擇“常規(guī)”以查看表結(jié)構(gòu),從中可以看到表的大部分屬性資訊,如數(shù)據(jù)表的名稱,所有者,創(chuàng)建日期,檔組,記錄的行數(shù),數(shù)據(jù)表中的字段名稱,結(jié)構(gòu)和類型等。
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存儲過程只用於當(dāng)前的資料庫,其中[@objname=]name子句指定對象的名稱。如果不指定對象的名稱,sp_help存儲過程就會列出當(dāng)前資料庫中的所有對象7.5.3查看表
對象的所有者和對象的類型,但觸發(fā)器的資訊需要用sp_helptrigger存儲過程來顯示。
[例7]
顯示當(dāng)前資料庫中的所有對象的資訊:execsp_help。顯示student表的資訊:
execsp_helpstudent7.5.4用企業(yè)管理器刪除表
在企業(yè)管理器中,用右鍵單擊要刪除的表,從快捷菜單中選擇“刪除”選項(xiàng),則會出現(xiàn)刪除對象對話框;單擊“全部除去”按鈕,當(dāng)有對象依賴於表時(shí)就不能刪除表了。當(dāng)有對象依賴於表時(shí)就不能刪除表了。
7.5.5對表建立索引
在SQLServer中,除了使用SQL語句創(chuàng)建索引外,還用企業(yè)管理器創(chuàng)建索引。
1.
用索引創(chuàng)建嚮導(dǎo)創(chuàng)建索引(1)打開企業(yè)管理器,從工具欄中選擇快捷菜單“工具→嚮導(dǎo)”(如圖7.12),打開“選擇嚮導(dǎo)”對話框。(2)在“選擇嚮導(dǎo)”對話框中選擇“資料庫→創(chuàng)建索引嚮導(dǎo)”節(jié)點(diǎn),單擊“確定”按鈕(3)在創(chuàng)建索引嚮導(dǎo)的歡迎對話框中,單擊“下一步”,打開“選擇資料庫和表”對
7.5.5對表建立索引話框。(4)在“選擇資料庫和表”對話框的“資料庫名稱”一欄中選擇資料庫,在“對象名”一欄中選擇表名。這裏選擇了資料庫Student中表STUDENT(如圖7.14),單擊“下一步”。(5)在“選擇列”對話框中選擇將包含在索引中的字段。這裏選擇基於“DEPT”字段創(chuàng)建索引(如圖7.15),然後單擊“下一步”。(6)在“指定索引選項(xiàng)”對話框(如圖7.16)中設(shè)置索引選項(xiàng),各個(gè)選項(xiàng)含義如下使其成為聚集索引:指定該索引為聚集索引。
7.5.5對表建立索引
使其成為唯一性索引:指定將該索引創(chuàng)建為唯一索引。填充因數(shù):設(shè)置填充因數(shù),並設(shè)置系統(tǒng)在最初創(chuàng)建索引時(shí)索引頁的填充程度。如果希望系統(tǒng)自動填充因數(shù),請選擇“最佳”;如果希望自己設(shè)置填充因數(shù),選擇“固定”,並在右邊輸入一個(gè)數(shù)字,該數(shù)字表示的是百分比。(7)設(shè)置完索引選項(xiàng)以後,單擊“下一步”,彈出“正在完成索引嚮導(dǎo)”對話框,在該對話框中顯示了索引名稱和包含在索引中的字段。在這個(gè)對話框中還可以為索引重新命
2使用企業(yè)管理器創(chuàng)建索引介紹如何使用企業(yè)管理器創(chuàng)建和管理索引。(1)選擇表“STUDENT”,單擊滑鼠右鍵。在彈出菜單中選擇命令“所有任務(wù)→
7.5.5對表建立索引
(2)在“管理索引”對話框中從“資料庫”下拉菜單中選擇資料庫student,從“表/視圖”下拉菜單中選擇表[dbo].[STUDENT](如圖7.19)(3)此時(shí)在“現(xiàn)有索引”的列表框中會列出表s中現(xiàn)存的索引。本例在“SNO”字段上創(chuàng)建一個(gè)新的索引,所以選擇“新建”按鈕,彈出“新建索引”對話框。(4)在“新建索引”對話框的索引名稱文本框中輸入索引名稱,然後選擇字段“SNO”並設(shè)置索引屬性(5)設(shè)置索引選項(xiàng)後,單擊“確定”按鈕即可。
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命令可以刪除一個(gè)或多個(gè)當(dāng)前資料庫中的索引,其語法如下: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í)會修改數(shù)據(jù),不需要的數(shù)據(jù)要能刪除掉,這些維護(hù)數(shù)據(jù)的操作SQL命令能完成的,這裏主要介紹在企業(yè)管理器中如何交互介面操作的方法。7.6.1添加數(shù)據(jù)
添加的方法是:利用前面介紹的方法打開待加入記錄數(shù)據(jù)的數(shù)據(jù)表(如圖7.11),在彈出的窗口中,單擊最後的空白行,分別向各字段中輸入新數(shù)據(jù)即可。當(dāng)輸入一個(gè)新記錄的數(shù)據(jù)後,會自動在最後出現(xiàn)一新的空白行,用戶可以繼續(xù)連續(xù)輸入多個(gè)記錄的數(shù)據(jù)7.6.2刪除數(shù)據(jù)
在SQLServer中,除使用DELETE語句刪除數(shù)據(jù)表中的記錄數(shù)據(jù)外,還可以在企業(yè)管理器中,在查看數(shù)據(jù)表的數(shù)據(jù)時(shí)刪除數(shù)據(jù),但這種方式比較適合於刪除單個(gè)或少量的記錄等簡單情況。刪除數(shù)據(jù)的具體方法是:打開要刪除記錄數(shù)據(jù)的數(shù)據(jù)表,在如圖7.22的窗口中,單擊記錄左側(cè)的小方快,此時(shí)該記錄為黑色,表示已選擇了該記錄,如圖7.22所示。也可以用滑鼠在記錄左側(cè)的區(qū)域上,下拖動來選擇多個(gè)記錄。此時(shí)按下Del鍵,系統(tǒng)會出現(xiàn)如圖7.23所示的對話框,提示用戶是否要刪除記錄,如果用戶單擊“是”按鈕,則記錄被刪除,如果用戶單擊“否”按鈕,則記錄將不被刪除。具體的圖見書上7.6.3修改數(shù)據(jù)
在SQLServer中,除使用UPDATE語句修改數(shù)據(jù)表中的數(shù)據(jù)外,還可以在企業(yè)管理器中,在查看資料庫表的數(shù)據(jù)時(shí)修改數(shù)據(jù),但這種方式不能應(yīng)付大量的數(shù)據(jù)修改。修改數(shù)據(jù)的方法是:打開待修改記錄數(shù)據(jù)的數(shù)據(jù)表,在如圖7.22所示的窗口中,單擊要修改的記錄,分別向各字段中輸入新數(shù)據(jù)即可,原數(shù)據(jù)被新數(shù)據(jù)覆蓋。注意:數(shù)據(jù)一旦交互更新後,將不能撤銷操作。除非利用即時(shí)的日誌資訊來恢復(fù)。7.7數(shù)據(jù)完整性
資料庫的完整性是指數(shù)據(jù)庫數(shù)據(jù)的正確性、有效性和相容性,SQLServer2000有全面的措施來保障數(shù)據(jù)完整性。7.7.1數(shù)據(jù)完整性概述
數(shù)據(jù)完整性(DataIntegrity)是指數(shù)據(jù)的精確性和可靠性。它是為防止資料庫中存在不符合語義規(guī)定的數(shù)據(jù)和防止因錯(cuò)誤資訊的輸入輸出造成無效操作或錯(cuò)誤資訊而提出的。數(shù)據(jù)完整性分為四類:實(shí)體完整性(EntityIntegrity),域完整性(DomainIntegrity),SQLServer提供了一些工具來幫助用戶實(shí)現(xiàn)數(shù)據(jù)完整性,其中最主要的是規(guī)則,默認(rèn),約束和觸發(fā)器7.7.2規(guī)則
.
所謂規(guī)則是指當(dāng)您對表做新建或操作時(shí)該列輸入值必須符合預(yù)先設(shè)置的條件,如果不符合的話SQLServer就不會讓該條數(shù)據(jù)新建至表內(nèi)或被操作。一、利用企業(yè)管理器來管理規(guī)則首先在企業(yè)管理器主介面下利用滑鼠選擇要管理規(guī)則的資料庫,將其展開。選中“規(guī)則”彈出如圖7.24的介面。如要查看某一列規(guī)則的內(nèi)容,在列規(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ī)則運(yùn)算式。規(guī)則的條件運(yùn)算式必須以局部變數(shù)名稱起頭(也即第一個(gè)字元必須為“@”),該變數(shù)名稱可以隨意取名。三、使用CREATERULE命令創(chuàng)建規(guī)則
CREATERULE命令的語法如下:CREATERULE[擁有者.]規(guī)則名稱AS條件運(yùn)算式(規(guī)則的定義)。
7.7.2規(guī)則
規(guī)則的定義可以是用於WHERE條件子句中的任何運(yùn)算式,可包含算術(shù)運(yùn)算符,關(guān)係運(yùn)算符和謂詞(如IN,LIKE,BETWEEN等)。
[例11]
創(chuàng)建學(xué)生性別規(guī)則。
createruleru_sexas@sexin('男','女')
四、用存儲過程查看規(guī)則使用sp_helptext存儲過程可以查看規(guī)則的細(xì)節(jié),其語法規(guī)則如下:
sp_helptext[@objname=]'name'
其中,[@objname=]'name'子句指明對象的名稱,sp_helptext存儲過程查看的對象可以是當(dāng)前資料庫中的規(guī)則,默認(rèn),觸發(fā)器,視圖或?yàn)榧用艿拇鎯^程。
7.7.2規(guī)則[例12]
查看名稱為“ru_sex”的規(guī)則的內(nèi)容。
execsp_helptext'ru_sex'
五、規(guī)則的綁定與鬆綁當(dāng)規(guī)則創(chuàng)建好後它必須和表內(nèi)的列綁定才可以發(fā)揮作用。要將規(guī)則定義與表列綁定,首先在企業(yè)管理器下單擊資料庫的對象“規(guī)則”,即可在右邊的窗口中看到已創(chuàng)建的規(guī)則名稱,在相應(yīng)的規(guī)則名稱上面單擊滑鼠右鍵,從快捷菜單中選擇“屬性”選項(xiàng),會出現(xiàn)“規(guī)則屬性”對話框在“規(guī)則屬性”對話框中,單擊“綁定UDT”按鈕,則出現(xiàn)“綁定規(guī)則到用戶自定義數(shù)據(jù)類型”的對話框,單擊“綁定列”按鈕則出現(xiàn)“將規(guī)則綁定到列”的對話框。
7.7.2規(guī)則
在該對話框中,在“表”所對應(yīng)的下拉列表中,選擇相應(yīng)的數(shù)據(jù)表(如STUDENT表),在左邊“未綁定的列”列表只能單擊要綁定的某個(gè)列(如sex),然後單擊“添加”按鈕,將該列添加到“綁定列”中,最後單擊“確定”,這時(shí)規(guī)則就被綁定到所選定的列上了。除了用企業(yè)管理器綁定規(guī)則外,還可以使用存儲過程綁定規(guī)則。
(1)存儲過程sp_bindrule可以將一個(gè)規(guī)則綁定到表的一列或一個(gè)用戶自定義數(shù)據(jù)類型上。其語法如下:
sp_bindrule[@rulename=]'rule',[@objname=]'object_name'[,'futureonly']7.7.2規(guī)則各參數(shù)說明如下:①[@rulename=]'rule'指定規(guī)則名稱。②[@objname=]'object_name'指定規(guī)則綁定的對象。③'futureonly'選項(xiàng)僅在綁定規(guī)則到用戶自定義數(shù)據(jù)類型上時(shí)才可以使用。當(dāng)指定此選項(xiàng)時(shí),只有以後使用此用戶自定義數(shù)據(jù)類型的列會應(yīng)用新規(guī)則,而當(dāng)前已經(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綁定,同時(shí)列又與規(guī)則B綁定,則以規(guī)則B為列的規(guī)則。7.7.2規(guī)則(2)用存儲過程sp_unbindrule其語法格式如下:sp_unbindrule[@objname=]'object_name'[,'futureonly']
其中,‘futureonly’選項(xiàng)同綁定時(shí)一樣,僅用於用戶自定義數(shù)據(jù)類型,它指定現(xiàn)有的用此用戶自定義數(shù)據(jù)類型定義的列仍然保持與此規(guī)則的綁定。
[例14]
解除已綁定到S表的字段sex的規(guī)則ru_sex。
execsp_unbindrule'ru_sex‘六、刪除規(guī)則(1)用企業(yè)管理器刪除規(guī)則。注意:在刪除一個(gè)規(guī)則前必須先將與其綁定的對象解除綁定。
7.7.3默認(rèn)
[例15]
刪除上面已創(chuàng)建的規(guī)則ru_sex。DROPRULEru_sex
所謂默認(rèn)(default)是用戶輸入記錄時(shí)沒有指定具體數(shù)據(jù)的列中自動插入的數(shù)據(jù)。1創(chuàng)建默認(rèn)
(1)用CREATEDEFAULT命令創(chuàng)建默認(rèn)
CREATEDEFAULT命令用於在當(dāng)前資料庫中創(chuàng)建默認(rèn)對象,其語法如下:CREATEDEFAULTdefault_nameASconstant_expression其中,default_name是要創(chuàng)建的默認(rèn)的名稱,constant7.7.3默認(rèn)expression子句是默認(rèn)的定義,該子句可以是數(shù)學(xué)運(yùn)算式或函數(shù),也可以包含表的列名或其他資料庫對象。[例16]
創(chuàng)建年齡的默認(rèn)值age_defa。CREATEDEFAULTage_defaas'20'設(shè)定默認(rèn)值後,當(dāng)用戶在輸入記錄數(shù)據(jù)時(shí),如果未提供字段age的值,系統(tǒng)將自動默認(rèn)其值為“20”歲。(1)用企業(yè)管理器查看默認(rèn)(2)用企業(yè)管理器創(chuàng)建默認(rèn)
2.查看和修改默認(rèn)(1)用企業(yè)管理器查看默認(rèn)
(2)用存儲過程sp_helptext查看默認(rèn)使用sp_helptext存儲過程可以查看默認(rèn)的資訊。[例17]
查看sex_defa的默認(rèn)。execsp_helptextsex_defa7.7.3默認(rèn)3.默認(rèn)的綁定與鬆綁創(chuàng)建默認(rèn)後,默認(rèn)僅僅是一個(gè)存在於資料庫中的對象,並未發(fā)生作用,默認(rèn)同規(guī)則一樣,需要將它與資料庫表或用戶自定義對象綁定。
(1)用企業(yè)管理器管理默認(rèn)的綁定用企業(yè)管理器管理默認(rèn)的綁定,方法如下:在企業(yè)管理器的左側(cè)窗格中,展開相應(yīng)的資料庫目錄,資料庫的對象“默認(rèn)”上面單擊右鍵,這時(shí)在右側(cè)窗格中即可看到已建立的各個(gè)默認(rèn)的資訊,在某個(gè)默認(rèn)的名稱上面單擊右鍵,從快捷菜單中選擇“屬性”菜單項(xiàng),即會出現(xiàn)“默認(rèn)屬性”對話框。單擊“綁定UDT”按鈕,則出現(xiàn)“綁定默認(rèn)到表的列”的對話框。用他們來管理默認(rèn)與表的列以及用戶自定義數(shù)據(jù)類型之間的綁定非常方便。
7.7.3默認(rèn)(2)用存儲過程sp_bindefault綁定默認(rèn)存儲過程sp_bindefault可以將一個(gè)默認(rèn)綁定到表的一列或一個(gè)用戶自定義數(shù)據(jù)類型上。其語法如下:sp_bindefault[@defname=]'default',[@objname=]'object_name'[,'futureonly'][例18]綁定默認(rèn)sex_defa到數(shù)據(jù)表S的sex上。execsp_bindefaultsex_defa,'S.[sex]‘4.刪除默認(rèn)(1)用企業(yè)管理器刪除默認(rèn)(2)使用DROPDEFAULT命令刪除默認(rèn)使用DROPDEFAULT命令刪除當(dāng)前資料庫中的一個(gè)或多個(gè)默認(rèn),其語法如下:DROPDEFAULT{默認(rèn)名}[,…n]7.7.3默認(rèn)[例19]
刪除學(xué)生性別的默認(rèn)值sex_defa。DROPDEFAULTsex_defa注意:刪除一個(gè)默認(rèn)值前必須先將與其綁定的對象解除綁定。7.8數(shù)據(jù)查詢
資料庫是為更方便有效的管理數(shù)據(jù)而存在的,人們希望可以隨時(shí)提供有效的所需要的數(shù)據(jù)資訊。因此,對用戶來說,數(shù)據(jù)查詢是資料庫最重要的功能。在資料庫中數(shù)據(jù)查詢是通過SELECT語句來完成的。SELECT語句可以從資料庫中按用戶要求檢索數(shù)據(jù),並將查詢結(jié)果以表格的形式返回。[例20]
查詢系科為“電腦”系的學(xué)生的學(xué)號和姓名,並把查詢結(jié)果存放到變數(shù)@sno和@sn中。命令為:
declare@snovarchar(10)declare@snvarchar(10)select@sno=sno,@sn=snfromswheresept='電腦'SELECT@local_variable通常用於將單個(gè)值返回到變數(shù)中。
7.8數(shù)據(jù)查詢
如果SELECT語句返回多個(gè)值,則將返回的最後一個(gè)值賦給變數(shù)。如果SELECT語句沒有返回行,變數(shù)將保留當(dāng)前值。如果expression是不返回值的標(biāo)量子查詢(集合形式),則將變數(shù)設(shè)為NULL。
7.9視圖
視圖是與基本表同等重要的概念,在第3章已有介紹,這裏主要介紹關(guān)於它的互動式介面7.9視圖操作與管理的內(nèi)容。7.9.1創(chuàng)建視圖一、使用創(chuàng)建視圖嚮導(dǎo)使用創(chuàng)建視圖嚮導(dǎo)創(chuàng)建視圖的步驟如下:(1)打開企業(yè)管理器,選擇工具→嚮導(dǎo),打開“選擇嚮導(dǎo)”對話框,在“選擇嚮導(dǎo)”對話框中展開“資料庫”節(jié)點(diǎn),並選擇它的下一級節(jié)點(diǎn)“創(chuàng)建視圖嚮導(dǎo)”,單擊“確定”按鈕繼續(xù)(如圖7.31所示),此時(shí)會出現(xiàn)“歡迎使用創(chuàng)建視圖嚮導(dǎo)”對話框,在該對話框中單擊“下一步”。(2)在如圖7.32的窗口中選擇需要的資料庫,單擊“下一步”。這裏選擇student資料庫。
7.9.1創(chuàng)建視圖
(3)在如圖7.33所示的窗口中選擇資料庫的對象,方法是在選擇對象的“包含在視圖中”中選種複選框,單擊“下一步”。(4)選擇將在視圖中顯示的所有字段,單擊“下一步。”(5)在“定義限制”窗口中輸入WHERE語句(如圖7.34)所示(6)在“命名視圖”中輸入視圖名稱。(7)在“完成創(chuàng)建視圖嚮導(dǎo)”對話框中單擊“確定”即可。二、在企業(yè)管理器中互動式創(chuàng)建視圖在企業(yè)管理器中,展開指定的資料庫,點(diǎn)按“視圖”,按滑鼠右鍵,從彈出的快捷菜單中選擇“新建視圖”菜單項(xiàng);
7.9.2管理視圖一、查看和修改視圖(1)方法1①啟動企業(yè)管理器,登錄到指定的伺服器。
②打開要查看或修改視圖的資料庫檔夾,選種“視圖”圖示,此時(shí)在右面的窗格中顯示當(dāng)前資料庫的所有視圖。
③在右面窗格中,用右鍵單擊要查看的視圖,在彈出的菜單中選擇“屬性”菜單項(xiàng),打開“視圖屬性”對話框。
④在該對話框內(nèi)可流覽到該視圖的SQL文本,也可以對該視圖進(jìn)行修改,然後單擊“檢查語法”按鈕來對語句合法性進(jìn)行檢查。若要對視圖的訪問許可權(quán)進(jìn)行設(shè)置,單擊“許可權(quán)”即可。(2)方法27.9.2管理視圖②打開要查看或修改視圖的資料庫檔夾,選種“視圖”圖示,此時(shí)在右面的窗格中顯示當(dāng)前資料庫的所有視圖。
③在右面窗格中,用右鍵單擊要查看的視圖,在彈出的菜單中選擇“設(shè)計(jì)視圖”菜單項(xiàng),可即時(shí)進(jìn)入到設(shè)計(jì)視圖的窗口,
④在該窗口中可按照創(chuàng)建視圖的方法對原有的視圖進(jìn)行各種修改。二、使用存儲過程在SQLServer中有三個(gè)用於瞭解視圖資訊的關(guān)鍵存儲程,即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)打開要刪除視圖的資料庫檔夾,選種“視圖”,此時(shí)在右面的窗格中顯示當(dāng)前資料庫的所有視圖。(3)在右窗格中,用右鍵單擊要刪除的視圖,在彈出菜單中選擇“刪除”菜單項(xiàng)即可刪除視圖。7.10備份和還原
資料庫的備份和還原是維護(hù)資料庫的安全性和完整性的重要組成部分。通過備份資料庫,可以防止因?yàn)楦鞣N原因而造成的數(shù)據(jù)破壞和丟失。還原是指在造成數(shù)據(jù)丟失和破壞以後利用備份來恢復(fù)數(shù)據(jù)的操作。7.10.1備份和還原概念
備份和還原是SQLServer的重要組成部分。備份是對SQLServer資料庫或事務(wù)日誌進(jìn)行複製,資料庫備份記錄了在進(jìn)行備份這一操作時(shí)資料庫中所有數(shù)據(jù)的狀態(tài),如果資料庫因意外而損壞,這些備份檔將在資料庫還原時(shí)用來還原資料庫。
一、資料庫備份的類型7.10.1備份和還原概念SQLServer2000提供了四種主要的備份方式:資料庫備份,事務(wù)日誌備份,差異備份,檔和文件組備份。下麵分別介紹:(1)資料庫備份資料庫備份是指對數(shù)據(jù)庫的完整備份,包括所有的數(shù)據(jù)以及資料庫對象。
(2)事務(wù)日誌備份事務(wù)日誌備份是指對數(shù)據(jù)庫發(fā)生的事務(wù)進(jìn)行備份,包括從上次進(jìn)行事務(wù)日誌備份,差異備份和數(shù)據(jù)庫完全備份之後,所有已經(jīng)完成的事務(wù)。(3)差異備份
7.10.1備份和還原概念
差異備份是指將最近一次數(shù)據(jù)庫備份以來發(fā)生的數(shù)據(jù)變化備份起來。
(4)檔和文件組備份檔或檔組備份是指對數(shù)據(jù)庫檔或檔組進(jìn)行部分,但它不象完整的資料庫備份那樣同時(shí)也進(jìn)行事務(wù)日誌備份。使用該備份方法可提高資料庫還原的速度,因?yàn)樗鼉H對遭到破壞的檔或檔組進(jìn)行還原。二、備份和還原的策略(1)如果只進(jìn)行資料庫備份,那麼將無法還原自最近一次數(shù)據(jù)庫備份以來資料庫中所發(fā)生的所有事務(wù)。
7.10.1備份和還原概念
(2)如果在進(jìn)行資料庫備份時(shí)也進(jìn)行事務(wù)日誌,那麼可以將資料庫還原到失敗點(diǎn)。從以上問題可以看出,對數(shù)據(jù)庫一致的要求程度成為我們選擇備份方案的主要的普遍性的問題。另外需要注意的是我們在備份時(shí)要決定應(yīng)使用哪種備份設(shè)備,如磁片或磁帶,並且決定如何在備份設(shè)備上創(chuàng)建備份,比如將備份添加到備份設(shè)備上或?qū)⑵涓采w。
7.10.2創(chuàng)建備份和還原
在進(jìn)行備份前必須先創(chuàng)建備份設(shè)備。備份設(shè)備是用來存儲資料庫、事務(wù)日誌或檔和文件組備份的存儲介質(zhì)。
1.如何創(chuàng)建磁片備份設(shè)備(企業(yè)管理器)
①展開伺服器組,然後展開伺服器。
②展開"管理"檔夾,右擊"備份",然後單擊"新建備份設(shè)備"命令。如圖7.367.10.2創(chuàng)建備份和還原③在“名稱”框中輸入該命名備份設(shè)備的名稱。
④單擊"檔案名",然後執(zhí)行下列操作之一:輸入磁片備份設(shè)備所使用的檔案名。單擊流覽(“...”)按鈕顯示“備份設(shè)備位置”對話框,再選擇磁片備份設(shè)備所使用的本地電腦上的物理檔。
2.如何刪除備份設(shè)備(使用企業(yè)管理器)
①展開伺服器組,然後展開伺服器。
②展開"管理"檔夾,然後單擊"備份"。
③在詳細(xì)資訊窗格中,右擊要刪除的命名備份設(shè)備。7.10.2創(chuàng)建備份和還原
④單擊"刪除"命令並確認(rèn)刪除。使用存儲過程管理備份設(shè)備:(1)使用sp_addumpdevice創(chuàng)建備份設(shè)備sp_addumpdevice[@devtype=]'device_type',[@logicalname=]'logical_name',[@physicalname=]'physical_name'[,{[@cntrltype=]controller_type|[@devstatus=]'device_status'}][例21]下麵的示例添加一個(gè)名為MYDISKD的磁片備份設(shè)備。
USEmasterEXECsp_addumpdevice'disk','mydiskd','c:\dump\dump1.bak'7.10.2創(chuàng)建備份和還原[例22]
下麵的示例顯示一個(gè)遠(yuǎn)程磁片備份設(shè)備。USEmasterEXECsp_addumpdevice'disk','networkdevice','\\servername\sharename\path\filename.ext'[例23]
下麵的示例添加TAPEDUMP1設(shè)備,其物理名稱為\\.\Tape0。USEmasterEXECsp_addumpdevice'tape','tapedump1','\\.\tape0'7.10.2創(chuàng)建備份和還原
sp_dropdevice刪除備份設(shè)備,其語法格式為:
sp_dropdevice[@logicalname=]'device'[,[@delfile=]'delfile']其中,[@logicalname=]'device'資料庫設(shè)備或備份設(shè)備的邏輯名稱,device
的數(shù)據(jù)類型為
sysname,沒有默認(rèn)值。[@delfile=]'delfile'指出是否應(yīng)該刪除物理備份設(shè)備檔。[例24]下麵的示例從SQLServer除去TAPEDUMP1磁帶轉(zhuǎn)儲設(shè)備。sp_dropdevice'TAPEDUMP1'
7.10.3資料庫備份
在SQLServer中無論是資料庫備份,還是事務(wù)日誌備份,差異備份,檔和文件組備份都執(zhí)行同樣的步驟,。(1)展開伺服器組,然後展開伺服器。(2)展開“資料庫”檔夾,右擊資料庫,指向“所有任務(wù)”子菜單,然後單擊“備份資料庫”命令。如圖7.38
(3)在該對話框中的“常規(guī)“選項(xiàng)卡中的”備份“選項(xiàng)欄內(nèi)選擇要進(jìn)行備份的類型。(4)通過“添加“按鈕來選擇備份的設(shè)備。(5)若選擇了“重寫“選項(xiàng)欄中的重寫現(xiàn)有媒體,則將原備份覆蓋。
(6)“調(diào)度”複選框,可對備份的時(shí)間表進(jìn)行設(shè)置。7.10.4還原資料庫1.
展開伺服器組,然後展開伺服器。2.
展開“資料庫”檔夾,右擊資料庫,指向“所有任務(wù)”子菜單,然後單擊“還原資料庫”命令。在“還原為數(shù)據(jù)庫”框中,如果要還原的資料庫名稱與顯示的默認(rèn)資料庫名稱不同,請?jiān)谄渲羞M(jìn)行輸入或選擇。單擊“資料庫”。5.
在"要還原的第一個(gè)備份"列表中,選擇要還原的備份集。6
.
在"還原"列表中,單擊要還原的資料庫備份。7.10.4還原資料庫
單擊"選項(xiàng)"選項(xiàng)卡並執(zhí)行下列操作:(可選)①在"還原為"中輸入組成資料庫備份的各資料庫檔的新名稱或新位置。②單擊"使資料庫可以繼續(xù)運(yùn)行,但無法還原其他事務(wù)日誌",如果沒有其他要應(yīng)用的事務(wù)日誌或差異資料庫備份。③如果要應(yīng)用另一個(gè)事務(wù)日誌或差異資料庫備份,則單擊"使資料庫不再運(yùn)行,但能還原其他事務(wù)日誌"。
7.在設(shè)置完選項(xiàng)後,單擊“確定“即可。
7.10.5備份和還原系統(tǒng)資料庫
系統(tǒng)資料庫保存了有關(guān)SQLServer的許多重要數(shù)據(jù)相信,這些數(shù)據(jù)的丟失將給系統(tǒng)帶來極為嚴(yán)重的後果。所以我們也必須對數(shù)據(jù)庫進(jìn)行備份。這樣一旦系統(tǒng)或資料庫丟失,則可以通過還原來重建系統(tǒng)資料庫。在SQLServre中,重要的系統(tǒng)資料庫主要有master,msdb,model。雖然tempdb也是系統(tǒng)資料庫,但沒有必要對其進(jìn)行備份,因?yàn)镾QLServre每次啟動都會重新創(chuàng)建該資料庫,而當(dāng)SQLServer停止運(yùn)行時(shí),tempdb資料庫中所有數(shù)據(jù)都會被自動清除。在這裏我們主要討論master資料庫的備份和還原問題。7.10.5備份和還原系統(tǒng)資料庫(1)增加或刪除用戶數(shù)據(jù)庫。但是如果增加或刪除檔或檔組,或用戶數(shù)據(jù)庫自動增加來容納新添加的數(shù)據(jù),這些操作並不對master資料庫產(chǎn)生影響,所以此時(shí)不必對它進(jìn)行備份。(2)創(chuàng)建新的登錄或執(zhí)行與登錄有關(guān)的操作。但是增加資料庫用戶並不影響master資料庫。(3)更改任何伺服器範(fàn)圍的配置選項(xiàng)或資料庫配置選項(xiàng)。(4)創(chuàng)建或刪除備份設(shè)備。(5)為進(jìn)行分佈式查詢或遠(yuǎn)程過程調(diào)用而對數(shù)據(jù)庫伺服器進(jìn)行配置,如增加連接伺服器或遠(yuǎn)程登錄等7.10.5備份和還原系統(tǒng)資料庫
使用RebuildMasterUtility來重建master資料庫,主要執(zhí)行以下步驟。(1)關(guān)掉SQLServer,然後運(yùn)行位於“…/MicrosoftSQLServer/80/tools/Binn”下的Rebuildm.exe檔,出現(xiàn)“重建master”對話框。(2)在出現(xiàn)的對話框中單擊“流覽”按鈕來流覽包括Data檔的原始目錄。(3)單擊“設(shè)置”按鈕出現(xiàn)“排序規(guī)則設(shè)置”對話框。(4)單擊“重建”按鈕來重建master資料庫。將資料庫移到另外的伺服器或磁片上需要進(jìn)行以下操作。7.10.5備份和還原系統(tǒng)資料庫(1)拆開資料庫(2)把資料庫檔(資料庫檔和事務(wù)日誌檔)移到另外的伺服器或磁片上。(3)連接伺服器並定義資料庫檔的存放位置。在SQLServer中,拆開資料庫使用的Transact-SQL命令是sp_detach_db,其語法格式為:sp_detach_db[@dbname=]'dbname'[,[@skipchecks=]'skipchecks']
其中,@dbname表示資料庫名稱;@skipchecks如果為True將修改關(guān)於資料庫的所有統(tǒng)計(jì)表,反之則不修改。
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程式設(shè)計(jì)初步*
Transact-SQL語言是SQLServer對標(biāo)準(zhǔn)SQL語言的擴(kuò)充,如:引入了程式設(shè)計(jì)的思想,增強(qiáng)了程式的流程控制語句等。因此,在Transact-SQL語言中,標(biāo)準(zhǔn)的SQL語句可暢通無阻。Transact-SQL語言最主要的用途是設(shè)計(jì)伺服器的能夠在後臺執(zhí)行的程式塊,如:存儲過程,觸發(fā)器等。7.11.1Transact-SQL簡介一、在Transact-SQL中可以使用兩種變數(shù):局部變數(shù)和全局變數(shù)1.局部變數(shù)局部變數(shù)是用戶可以自定義的變數(shù),它的作用範(fàn)圍僅在程式內(nèi)部。局部變數(shù)在程式中通常用來存儲從表中查詢到的數(shù)據(jù),或當(dāng)做程式執(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è)定變數(shù)的值。其語法如下:
SELECT@局部變數(shù)=變數(shù)值
SET@局部變數(shù)=變數(shù)值例27]
聲明兩個(gè)變數(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)內(nèi)部使用的變數(shù),其作用範(fàn)圍並不局限於某一程式,而是任何程式均可隨時(shí)調(diào)用。全局變數(shù)通常存儲一些SQLServer2000的配置設(shè)定值和效能統(tǒng)計(jì)數(shù)據(jù)。用戶可在程式中用全局變數(shù)來測試系統(tǒng)的設(shè)定值或Transact-SQL命令執(zhí)行後的狀態(tài)值。全局變數(shù)不是由用戶的程式定義的,而是有系統(tǒng)定義和維護(hù)的,只能使用預(yù)先說明及定義的全局變數(shù)。引用全局變數(shù)時(shí)必須以“@@”開頭。SQLServer提供的全局變數(shù)共有33個(gè),但並不是每個(gè)都可用,而且局部變數(shù)與全局變數(shù)不能同名。否則會在應(yīng)用中出錯(cuò)。
7.11.1Transact-SQL簡介3.注釋符在Transact-SQL中可使用兩類注釋符:(1)ANSI標(biāo)準(zhǔn)的注釋符“--”用於單行注釋;(2)與C語言相同的程式注釋符號,即“/*……*/”,“/*”用於程式注釋開頭,“*/”用語程式注釋結(jié)尾,可以在程式中多行文字標(biāo)示為注釋。二、流程控制語句
1.BEGIN…END1.BEGIN…END語句用於將多個(gè)Transact-SQL語句組合為一個(gè)邏輯塊。
7.11.1Transact-SQL簡介其語法格式如下:BEGIN<命令行或程式塊>ENDBEGIN和END語句必須成對使用:任何一條語句均不能單獨(dú)使用。BEGIN語句行後為Transact-SQL語句塊。最後,END語句行指示語句塊結(jié)束。BEGIN和END語句用於下列情況:(1)WHILE迴圈需要包含語句塊。(2)CASE函數(shù)的元素需要包含語句塊。(3)IF或ELSE子句需要包含語句塊。BEGIN...END語句塊允許嵌套。
7.11.1Transact-SQL簡介2.IF…ELSEIF…ELSE的語法格式如下:IF<條件運(yùn)算式><命令行或程式塊>ELSE<條件運(yùn)算式><命令行或程式塊>
IF語句用於條件的測試。結(jié)果流的控制取決於是否指定了可選的ELSE語句:
(1)指定IF而無
ELSE:IF語句取值為TRUE時(shí),執(zhí)行IF語句後的語句或語句塊。IF語句取值為FALSE時(shí),跳過IF語句後的語句或語句塊。
2.IF…ELSEIF…ELSE的語法格式如下:IF<條件運(yùn)算式><命令行或程式塊>ELSE<條件運(yùn)算式><命令行或程式塊>IF語句用於條件的測試。結(jié)果流的控制取決於是否指定了可選的ELSE語句:
(1)指定IF而無ELSE:IF語句取值為TRUE時(shí),執(zhí)行IF語句後的語句或語句塊。IF語句取值為FALSE時(shí),跳過IF語句後的語句或語句塊。7.11.1Transact-SQL簡介[例29]下麵的示例顯示帶有語句塊的IF條件。如果DB原理書的平均價(jià)格不低於15元,那麼就顯示文本:DB原理書的總價(jià)高於15元。
USEpubsIF(SELECTAVG(price)FROMtitlesWHEREname='DB原理')<15BEGINPRINT'書價(jià)不正確!'ENDELSEPRINT'DB原理書的總價(jià)高於15元'
7.11.1Transact-SQL簡介3.CASE計(jì)算條件列表並返回多個(gè)可能結(jié)果運(yùn)算式之一。CASE具有兩種格式:(1)簡單CASE函數(shù)將某個(gè)運(yùn)算式與一組簡單運(yùn)算式進(jìn)行比較以確定結(jié)果。(2)CASE搜索函數(shù)計(jì)算一組布爾運(yùn)算式以確定結(jié)果。兩種格式都支持可選的ELSE參數(shù)。CASE的語法格式為:格式1:CASE<運(yùn)算式>WHEN<運(yùn)算式>THEN<運(yùn)算式>…7.11.1Transact-SQL簡介WHEN<運(yùn)算式>THEN<運(yùn)算式>[ELSE<運(yùn)算式>]END該語句的執(zhí)行過程是:將CASE後面運(yùn)算式的值與各WHEN子句中的運(yùn)算式的值進(jìn)行比較,如果二者相等,則返回THEN後的運(yùn)算式的值,然後跳出CASE語句,否則返回ELSE子句中的運(yùn)算式的值。ELSE子句是可選項(xiàng)。當(dāng)CASE語句中不包含ELSE子句時(shí),如果所有比較失敗,CASE語句將返回NULL。[例30]
從學(xué)生表S中,選取SNO,SEX,如果SEX為“男”則輸出“M”,如果為“女”則輸出“F”。
7.11.1Transact-SQL簡介SELECTSNO,SEX=CASESEXWHEN'男'THEN'M'WHEN'女'THEN'F'ENDFROMS格式2:CASEWHEN<條件運(yùn)算式>THEN<運(yùn)算式>…WHEN<條件運(yùn)算式>THEN<運(yùn)算式>END7.11.1Transact-SQL簡介[例31]
從SC表中查詢所有同學(xué)選課成績情況,凡成績?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語句退出最內(nèi)層WHILE迴圈,CONTINUE語句重新開始WHILE迴圈。如果沒有其他行可以處理,則程式可能執(zhí)行BREAK語句。如果要繼續(xù)執(zhí)行代碼,則可執(zhí)行CONTINUE語句。
WHILE…CONTINUE…BREAK的語法格式如下:
WHILE<條件運(yùn)算式>BEGIN<命令行或程式塊>7.11.1Transact-SQL簡介
5.WAITFORWAITFOR命令用來暫時(shí)停止程式執(zhí)行,直到所設(shè)定的等待時(shí)間已過或所設(shè)定的時(shí)間已到才繼續(xù)往下執(zhí)行。其中“時(shí)間”必須為DATETIME類型的數(shù)據(jù),但不能包括日期。各關(guān)鍵字含義如下:(1)DELAY:用來設(shè)定等待的時(shí)間,最多可達(dá)24小時(shí)(2)TIME:用來設(shè)定等待結(jié)束的時(shí)間點(diǎn)(3)ERROREXIT:直到處理非正常中斷(4)PROCESSEXIT:直到處理正常或非正常中斷(5)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年汽車尾氣凈化設(shè)備項(xiàng)目發(fā)展計(jì)劃
- 生物技術(shù)在農(nóng)業(yè)中的應(yīng)用與效果試題及答案
- 供應(yīng)鏈優(yōu)化策略試題及答案
- CPSM考試在職人士的復(fù)習(xí)策略及試題及答案
- 深入學(xué)習(xí)2024國際物流師試題與答案
- Jetson Xavier NX Data Sheet 原版完整文件
- 值得關(guān)注的倉儲管理員考點(diǎn)及答案
- 精準(zhǔn)定位2024年CPSM考試試題及答案
- 理清思路備考2024年CPMM的試題及答案
- 策劃復(fù)習(xí):CPMM試題及答案重要性
- 常規(guī)機(jī)械設(shè)備檢驗(yàn)報(bào)告
- GB/T 11378-2005金屬覆蓋層覆蓋層厚度測量輪廓儀法
- 重力壩畢業(yè)設(shè)計(jì)-水電站混凝土重力壩工程設(shè)計(jì)
- 解讀電子病歷系統(tǒng)應(yīng)用水平分級評價(jià)和標(biāo)準(zhǔn)
- KET詞匯表(英文中文完整版)
- 2023年高考數(shù)學(xué)求定義域?qū)n}練習(xí)(附答案)
- 贛州市興國縣鄉(xiāng)鎮(zhèn)街道社區(qū)行政村統(tǒng)計(jì)表
- 醫(yī)療機(jī)構(gòu)手術(shù)分級管理辦法
- WS 444.1-2014 醫(yī)療機(jī)構(gòu)患者活動場所及坐臥設(shè)施安全要求 第1部分:活動場所
- 鋼結(jié)構(gòu)工程監(jiān)理規(guī)劃(整理)
- DB11_T1832.3-2021 建筑工程施工工藝規(guī)程第3部分:混凝土結(jié)構(gòu)工程
評論
0/150
提交評論