




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
SQLServer2000資料庫管理系統7.1SQLServer2000的簡介
SQLServer是一種關係資料庫,它除了支持傳統關係資料庫組件(如數據庫,表)和特性(如表的join)外,另外也支持當今關係資料庫常用的組件,如存儲過程,視圖等。SQLServer支持關係資料庫國際標準語言——SQL(它稱為Transact-SQL)。SQLServer另外的一項重要的特點是它支持資料庫複製的功能。
SQLServer2000包含有6種不同的版本:
(1)企業版(EnterpriseEdition)作為各種企業、單位或組織的資料庫伺服器使用
(2)標準版(StandardEdition)用於小型的工作組或部門7.1SQLServer2000的簡介
(3)個人版(PersonalEdition)用於單機系統或客戶機(4)開發者版(DeveloperEdition)用於程式員開發應用程式時,將SQLServer2000作為其數據存儲區。(5)WindowsCE版安裝於執行WindowsCE的個人數字助理上(PDA),它能複製任何SQLServer2000版本的數據,使WindowsCE數據能與公司的主要資料庫同步。
(6)評測版SQLServer2000評測版是一個功能基本齊全的版本,該版本主要用來評估SQLServer2000的功能。
7.1SQLServer2000的簡介
一、SQLServer2000的新特性(1)在關係資料庫方面的增強
1.XML支持
2.用戶定義函數和新的數據類型
3.索引視圖,索引增強
4.分佈式查詢
5.備份和還原
6.級聯參考完整性約束
8.排序規則(2)圖形管理工具增強
1.日誌傳送功能
2.SQL事件探查器增強
7.1SQLServer2000的簡介
3.SQL查詢分析器增強
4.複製資料庫嚮導二、SQLServer2000的主要組件作為一個完善的資料庫管理系統,SQLServer2000提供了一些功能強大,使用方便的資料庫管理工具。下麵,對這些組件一個簡單的介紹.
1、企業管理器(EnterpriseManager)
企業管理器是SQLServer中最重要的管理工具
2、查詢分析器(QueryAnalyzer)
查詢分析器用於執行Transact-SQL命令等SQL腳本程式,以查詢分析或處理資料庫中的數據。
3
、
服務管理器(ServiceManager)
7.1SQLServer2000的簡介
服理器用於啟動、暫停或停止SQLServer的四種服務,即分佈式事務協調器(DistributedTransactionCoordinator,DTC)、MSSQLServerOLAPservice、SQLServer和SQLServerAgent。
4、客戶端網路實用工具(ClientNetworkUtility)
5、伺服器端網路實用工具(ServerNetworkUtility)伺服器端網路實用工具用於配置伺服器端的連接、測定網路庫的版本資訊
6、導入和導出數據(ImportandExportData)7、在IIS中配置SQLXML支持(ConfigureSQLXMLSupportinIIS)7.1SQLServer2000的簡介
8、事件探查器(Profiler)
事務探查器的功能是監視SQLServer資料庫系統引擎事件,主要用於監聽SQLServer系統的運行性能。
9、聯機叢書(BookOnline)
SQLServer2000提供了大量的聯機文檔,用戶可以便捷地查到許多很有價值的資訊。一個優秀的SQLServer管理員必然是使用聯機文檔的高手。7.1SQLServer2000的簡介圖7.1SQLServer2000工具菜單7.2企業管理器
企業管理器(EnterpriseManager)是SQLSERVER程式組中的最重要的程式之一,是管理伺服器和數據庫的主要工具。可以從開始菜單命令“開始→程式→MicrosoftSQLServer→企業管理器”打開企業管理器。如圖7.27.2企業管理器
在企業管理器中包含兩個窗口,其中左側的窗口是以“樹狀目錄”顯示的活動窗口,右側是顯示內容的窗口。1、樹狀目錄窗口
在左邊的樹狀目錄中,根節點是“控制面板根目錄”,表示它是所有伺服器控制面板的根。2、內容窗口
企業管理器右邊的窗口為內容窗口。在該窗口中顯示的是在樹狀目錄處於“焦點”狀態(或選種狀態)的條目中包含的內容。企業管理器中的菜單分為上下兩行,其中上面一行包括“控制面版”,“窗口”和“幫助”,通過這三個菜單項可以實現退出企業管理器。
7.3查詢分析器
查詢分析器(QueryAnalyzer)是SQLServer提供的使用方便,介面友好的Transact-SQL語句編譯工具,是SQLServer2000客戶端應用程式的重要組成部分。用戶可以通過“開始”菜單或從SQLServer企業管理器內運行它。還可以通過執行isqlw實用工具從命令提示符運行SQL查詢分析器。啟動時系統首先打開“連接到SQLServer”對話框,如圖7.3所示。
7.3查詢分析器圖7.3啟動查詢分析器7.3查詢分析器
圖7.4查詢分析器到哪個SQLServer伺服器。選擇伺服器並設置正確使用該對話框可以指定連接的身份驗證方式,單擊“確定”按鈕,即可打開SQLServer查詢分析器,如圖7.4所示7.3查詢分析器
查詢分析器左邊的窗口是“對象流覽器”,這個窗口是SQLServer2000中新增的窗口。該窗口包含兩個選項卡:
“對象”選項卡—用於流覽SQLServer中所有的資料庫對象,內置函數和數據庫類型等;
“模版”選項卡—提供一些常用的程式模版,用戶可以在這些模版的基礎上進行修改,以簡化Transact-SQL語言的輸入操作。7.4.1系統資料庫
SQLServer2000系統有四種系統資料庫:
1.master資料庫
master資料庫記錄SQLServer系統的所有系統級別資訊
2.tempdb資料庫
tempdb
資料庫保存所有的臨時表和臨時存儲過程。
3.model資料庫
model資料庫用作在系統上創建的所有資料庫的範本(包括用戶數據庫和tempdb資料庫)。
4.msdb資料庫
SQLServer企業管理器和SQLServerAgent使用Msdb資料庫來執行安排工作和警報以及記錄操作者等操作。7.4.2實例資料庫
也存儲在SQLServer2000默認安裝目錄的Data目錄中。Pubs和Northwind資料庫可以作為SQLServer2000的學習工具。其中,pubs實例資料庫SQLServer2000有兩個實例資料庫:pubs和Northwind。與系統資料庫一樣,實例資料庫的檔存儲了一個虛構的圖書出版公司的基本情況,Northwind實例資料庫包含了一個公司的銷售數據,是一個虛構的公司,該公司從事世界各地的特產食品進出口貿易
7.4.3創建資料庫
在SQLServer2000中創建資料庫的場所有兩處:一是在企業管理器中使用現成的命令和功能互動式創建;
二是在查詢分析器中書寫Transact-SQL語句。首先介紹如何使用企業管理器創建自己的用戶數據庫。使用企業管理器創建資料庫,可以採用兩種方法:①使用創建資料庫嚮導;②在控制面板樹上選擇資料庫,然後選擇“新建資料庫”菜單命令直接創建用戶數據庫。資料庫創建嚮導簡單易用,但是它的使用在一定程度上限制了物理資料庫的複雜程度,所以在實際操作中並不常用。因此,我們主要討論第二種方法
7.4.3創建資料庫在企業管理器中直接創建用戶數據庫的步驟如下:(1)打開企業管理器(2)在控制面板目錄中選擇“資料庫”節點如下圖7.4.3創建資料庫(3)在“資料庫”節點上單擊右鍵,並在彈出的菜單中選擇“新建資料庫”
(4)在“名稱”文本框中輸入資料庫的名稱。(5)點擊“數據檔”選項卡。“數據檔”是SQLServer2000用於實際存儲數據、索引等資料庫對象的檔。(6)點擊“日誌檔”選項卡指定事務日誌檔的名稱。
(7)單擊“確定”按鈕,則創建一個新資料庫7.4.4查看資料庫資訊1.用企業管理器查看資料庫資訊在企業管理器窗口中查看資料庫資訊的方法如下。(1)方法1:在企業管理器窗口中的左側目錄樹窗口中,展開“資料庫”檔夾,在某個資料庫名稱上先單左鍵,再單擊右鍵,在出現的快捷菜單中單擊“查看”中的“任務板”。(2)方法2:在企業管理器窗口中的左側目錄樹窗口中,展開“資料庫”檔夾,單擊某個資料庫名稱,然後單擊“查看”菜單,在其下拉菜單中單擊“任務板”
7.4.4查看資料庫資訊
操作完成後,在企業管理器窗口右側的“任務板中看到資料庫的“常規”資訊,“表”資訊和“嚮導”資訊。在打開資料庫檔夾目錄樹後,可以選擇各種資料庫對象進行資訊流覽。7.4.5更改資料庫1.使用企業管理器修改資料庫的一個簡單快捷的方法是使用企業管理器,使用它修改資料庫結構的步驟下:
(1)打開需要修改的用戶數據庫的資料庫屬性對話框。
(2)在屬性對話框中對相關內容(如數據檔和事務日誌檔的屬性)進行修改
7.4.5更改資料庫2.使用ALTERDATABASE語句修改除使用企業管理器外,還可以使用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])
各參數說明如下:(1)ADDFILE指定要增加檔到哪個檔組。(2)TOFILEGROUP指定要增加檔到哪個檔組。(3)ADDLOGFILE指定要增加的事務日誌檔。(4)REMOVEFILE從資料庫系統表中刪除指定檔的定義並且刪除其物理檔。檔只有為空時才能被刪除。(5)ADDFILEGROUP指定要增加的檔組。(6)REMOVEFILEGROUP從資料庫中刪除指定檔組的定義並且刪除其包括的所有資料庫檔。7.4.5更改資料庫
(7)MODIFYFILE修改指定檔的檔案名,容量大小,最大容量以及檔增容方式等屬性,但一次只能修改一個檔的一個屬性。使用此項時應注意:在檔格式filespec中必須NAME明確指定檔的名稱,如果檔大小已經確定,那麼新定義的size必須比當前的檔容量大
(8)MODIFYFILEGROUPfilegroup_name{filegroup_property}用於修改檔組屬性。
[例1]
修改student資料庫的主數據檔的大小增加到15MB。7.4.5更改資料庫
ALTERDATABASEstudentMODIFYFILE(NAME='員工資料庫_dat',SIZE=15)3.更改資料庫名重命名資料庫需要使用系統存儲過程SP_renamedb,其語法如下:
sp_renamedb[@old_name=]'old_name',[@new_name=]'new_name'[例2]
更改student資料庫的名稱為study。
execsp_renamedb'student','study‘7.4.6刪除數據
1.用企業管理器刪除資料庫2.用DROPDATABASE命令刪除資料庫
[例3]
刪除資料庫student。
DROPDATABASEstudent7.4.7壓縮資料庫
資料庫在使用一段時間後時常會出現因數據刪除而造成資料庫中空閒空間太多的情況,這時就需要減少分配給資料庫檔和事務日誌檔的磁片空間,以免浪費磁片空間。當資料庫中沒有數據時,可以修改資料庫檔屬性,直接改變其佔用空間;但當資料庫中有數據時,這樣做會破壞資料庫中的數據。因此需要使用壓縮的、式來縮減資料庫空間。對數據庫可以進行自動壓縮,也可以進行人工壓縮。7.4.7壓縮資料庫1自動壓縮資料庫
2
人工壓縮資料庫(1)使用企業管理器壓縮
在企業管理器介面下在要被壓縮大小的資料庫上選擇單擊滑鼠右鍵,在快捷菜單中選取所有任務→收縮資料庫,
(2)用DBCCSHRINKDATABASE命令壓縮資料庫大小除了利用企業管理器來壓縮資料庫大小外,也可以使用DBCCSHRINKDATABASE命令來壓縮資料庫大小以刪除未使用使用空間。其語法格式如下:
7.4.7壓縮資料庫DBCCSHRINKDATABASE(資料庫名稱[,百分比][,{NOTRUNCATE|TRUNCATEONLY}])
說明:百分比:在資料庫被壓縮後,資料庫檔保留的空間比率
[例4]
壓縮資料庫student的未使用空間為數據庫大小50%。
dbccshrinkdatabase(student,50)
(3)使用DBCCSHRINKFILE改變資料庫檔大小
DBCCSHRINKFILE命令用於壓縮當前資料庫中的檔,其語法如下:7.4.7壓縮資料庫BCCSHRINKFILE({檔案名稱|file_id},{[,新的檔大小]{EMPTYFILE|NOTRUNCATE|TRUNCATEONLDY}}))
[例5]
壓縮資料庫student中的數據檔student到1MB。
dbccshrinkfile(student,1)7.5管理數據表
創建了一個資料庫以後,就可以在該資料庫中創建表了。表是一種最重要的資料庫對象,它在資料庫中存儲數據,可以創建自己的數據表。同時表也是用來存儲數據和運算元據的邏輯結構,其結構和電子錶格相似,有行和列組成。7.5.1用企業管理器創建數據表
在企業管理器中創建表按以下步驟進行。(1)在要創建表的資料庫中選擇“表”對象後,單擊右鍵從快捷菜單中選擇“新建表”選項或在工具欄中選擇圖示,即會出現定義列對話框,如圖7.8所示在此可設定表的列名、數據類型、精度和缺省值等屬性。(2)將數據表中各列定義完畢後,單擊工具欄中的保存按鈕,即出現輸入新建表名的對話框。(3)輸入表名後,單擊“確定”按鈕,即會將表保存到資料庫中。
7.5.2修改表1.表的重新命名(1)在企業管理器中展開希望重新命名的表所在的資料庫節點,然後選中該資料庫節點下一級菜單中的“表”節點。(2)在希望重新命名的表上單擊滑鼠右鍵,在彈出菜單上選擇命令“重命名”,輸入新的表名稱。(3)按回車鍵,在彈出的對話框內單擊“確定”按鈕當表創建好後,可以根據需要對表的列,約束等屬性進行添加,刪除和修改。這就需要修改表結構
2.修改數據表結構打開希望修改表結構的表設計窗口,在該窗口中可以執行下列操作:7.5.2修改表(1)改數據表中字段定義(2)插入新字段如果希望為數據表添加新的字段,可以在某字段所在的行上單擊滑鼠右鍵,然後在彈
出菜單中選擇“插入列”命令,該字段前面會插入一個空白行,在空白行中編輯新字段即可。(3)刪除現有字段選中該字段並單擊滑鼠右鍵,在彈出菜單中選擇命令“刪除列”。3.修改表格屬性在表設計窗口中單擊“表和索引屬性”按鈕,打開表格屬性窗口,在該窗口中可以設置與整個表相關的重要屬性,如“表”,“關係”,“索引/鍵”,“CHECK約束”。7.5.2修改表(1)在要創建表的資料庫中選擇“表”對象後,單擊右鍵從快捷菜單中選擇“新建表”選項或在工具欄中選擇圖標,即會出現定義列對話框,如圖7.8所示在此可設定表的列名、數據類型、精度和缺省值等屬性。1)在要創建表的資料庫中選擇“表”對象後,單擊右鍵從快捷菜單中選擇“新建表”選項或在工具欄中選擇
(2)將數據表中各列定義完畢後,單擊工具欄中的保存按鈕,即出現輸入新建表名的對話框。(3)輸入表名後,單擊“確定”按鈕,即會將表保存到資料庫中。
7.5.2修改表1.表的重新命名
(1)在企業管理器中展開希望重新命名的表所在的資料庫節點,然後選中該資料庫節點下一級菜單中的“表”節點。(2)在希望重新命名的表上單擊滑鼠右鍵,在彈出菜單上選擇命令“重命名”,輸入新的表名稱。(3)按回車鍵,在彈出的對話框內單擊“確定”按鈕當表創建好後,可以根據需要對表的列,約束等屬性進行添加,刪除和修改。這就需要修改表結構2.修改數據表結構打開希望修改表結構的表設計窗口,在該窗口中可以執行下列操作:(1)改數據表中字段定義7.5.2修改表
(2)插入新字段
(3)刪除現有字段選中該字段並單擊滑鼠右鍵,在彈出菜單中選擇命令“刪除列”。
3.修改表格屬性
4.用存儲過程sp_rename修改表名和列名
sp_rename存儲過程可以修改當前資料庫中用戶對象的名稱,如表,列,索引,存儲過程等。其語法如下:
7.5.2修改表
execsp_rename[@objname=]'object_name',[@newname=]'new_name'[,[@objtype=]'object_type']OBJECT值指代了系統表sysobjects中的所有對象,如表、視圖、存儲過程、觸發器、規則和約束等。OBJECT值為默認值。
[例6]
更改s表中的列sno名稱為stusno。
execsp_rename's.sno','stusno','column'
7.5.3查看表1.查看表的屬性在企業管理器下選擇表名,單擊滑鼠右鍵,在出現的快捷菜單中選取“屬性”,將會出現如圖7.9的介面。在此介面中我們可以選擇“常規”以查看表結構,從中可以看到表的大部分屬性資訊,如數據表的名稱,所有者,創建日期,檔組,記錄的行數,數據表中的字段名稱,結構和類型等。在企業管理器下選擇表名,單擊滑鼠右鍵,在出現的快捷菜單中選取“屬性”,將會出現如圖7.9的介面。在此介面中我們可以選擇“常規”以查看表結構,從中可以看到表的大部分屬性資訊,如數據表的名稱,所有者,創建日期,檔組,記錄的行數,數據表中的字段名稱,結構和類型等。
7.5.3查看表2.查看數據表中的數據在企業管理器中,用右鍵單擊要查看數據的表,從快捷菜單中選擇“打開表”,再選擇其子菜單中的“返回所有行”,如圖7.10,圖7.11所示3.用系統存儲過程查看表的資訊
sp_help存儲過程可以提供指定的資料庫對象的資訊和系統或用戶定義的數據類型的資訊。其語法如下:
sp_help[[@objname=]name]sp_help存儲過程只用於當前的資料庫,其中[@objname=]name子句指定對象的名稱。如果不指定對象的名稱,sp_help存儲過程就會列出當前資料庫中的所有對象7.5.3查看表
對象的所有者和對象的類型,但觸發器的資訊需要用sp_helptrigger存儲過程來顯示。
[例7]
顯示當前資料庫中的所有對象的資訊:execsp_help。顯示student表的資訊:
execsp_helpstudent7.5.4用企業管理器刪除表
在企業管理器中,用右鍵單擊要刪除的表,從快捷菜單中選擇“刪除”選項,則會出現刪除對象對話框;單擊“全部除去”按鈕,當有對象依賴於表時就不能刪除表了。當有對象依賴於表時就不能刪除表了。
7.5.5對表建立索引
在SQLServer中,除了使用SQL語句創建索引外,還用企業管理器創建索引。
1.
用索引創建嚮導創建索引(1)打開企業管理器,從工具欄中選擇快捷菜單“工具→嚮導”(如圖7.12),打開“選擇嚮導”對話框。(2)在“選擇嚮導”對話框中選擇“資料庫→創建索引嚮導”節點,單擊“確定”按鈕(3)在創建索引嚮導的歡迎對話框中,單擊“下一步”,打開“選擇資料庫和表”對
7.5.5對表建立索引話框。(4)在“選擇資料庫和表”對話框的“資料庫名稱”一欄中選擇資料庫,在“對象名”一欄中選擇表名。這裏選擇了資料庫Student中表STUDENT(如圖7.14),單擊“下一步”。(5)在“選擇列”對話框中選擇將包含在索引中的字段。這裏選擇基於“DEPT”字段創建索引(如圖7.15),然後單擊“下一步”。(6)在“指定索引選項”對話框(如圖7.16)中設置索引選項,各個選項含義如下使其成為聚集索引:指定該索引為聚集索引。
7.5.5對表建立索引
使其成為唯一性索引:指定將該索引創建為唯一索引。填充因數:設置填充因數,並設置系統在最初創建索引時索引頁的填充程度。如果希望系統自動填充因數,請選擇“最佳”;如果希望自己設置填充因數,選擇“固定”,並在右邊輸入一個數字,該數字表示的是百分比。(7)設置完索引選項以後,單擊“下一步”,彈出“正在完成索引嚮導”對話框,在該對話框中顯示了索引名稱和包含在索引中的字段。在這個對話框中還可以為索引重新命
2使用企業管理器創建索引介紹如何使用企業管理器創建和管理索引。(1)選擇表“STUDENT”,單擊滑鼠右鍵。在彈出菜單中選擇命令“所有任務→
7.5.5對表建立索引
(2)在“管理索引”對話框中從“資料庫”下拉菜單中選擇資料庫student,從“表/視圖”下拉菜單中選擇表[dbo].[STUDENT](如圖7.19)(3)此時在“現有索引”的列表框中會列出表s中現存的索引。本例在“SNO”字段上創建一個新的索引,所以選擇“新建”按鈕,彈出“新建索引”對話框。(4)在“新建索引”對話框的索引名稱文本框中輸入索引名稱,然後選擇字段“SNO”並設置索引屬性(5)設置索引選項後,單擊“確定”按鈕即可。
3.查看和修改索引(1)用企業管理器查看和修改索引
(2)用sp_helpindex存儲過程查看索引7.5.5對表建立索引[例8]
查看S表的索引。
execsp_helpindexS4.用sp_rename存儲過程更改索引名稱
[例9]
更改s表中索引insno改為dxsno。
execsp_rename's.insno','dxsno‘5.刪除索引
(1)用企業管理器刪除索引(2)用DROPINDEX命令刪除索引
DROPINDEX命令可以刪除一個或多個當前資料庫中的索引,其語法如下:7.5.5對表建立索引
DROPINDEX'tablename.indexname'[,…n]DROPINDEX命令不能刪除有CREATETABLE或ALTERTABLE命令創建的PRIMARYKEY或UNIQUE約束索引,也不能刪除系統表中的索引。
[例10]
刪除表S中的索引dxsno。
dropindexS.dxsno7.6用企業管理器管理數據
創建了資料庫,也創建了若干資料庫表了,接下來就要向表中添加數據,輸入有誤時會修改數據,不需要的數據要能刪除掉,這些維護數據的操作SQL命令能完成的,這裏主要介紹在企業管理器中如何交互介面操作的方法。7.6.1添加數據
添加的方法是:利用前面介紹的方法打開待加入記錄數據的數據表(如圖7.11),在彈出的窗口中,單擊最後的空白行,分別向各字段中輸入新數據即可。當輸入一個新記錄的數據後,會自動在最後出現一新的空白行,用戶可以繼續連續輸入多個記錄的數據7.6.2刪除數據
在SQLServer中,除使用DELETE語句刪除數據表中的記錄數據外,還可以在企業管理器中,在查看數據表的數據時刪除數據,但這種方式比較適合於刪除單個或少量的記錄等簡單情況。刪除數據的具體方法是:打開要刪除記錄數據的數據表,在如圖7.22的窗口中,單擊記錄左側的小方快,此時該記錄為黑色,表示已選擇了該記錄,如圖7.22所示。也可以用滑鼠在記錄左側的區域上,下拖動來選擇多個記錄。此時按下Del鍵,系統會出現如圖7.23所示的對話框,提示用戶是否要刪除記錄,如果用戶單擊“是”按鈕,則記錄被刪除,如果用戶單擊“否”按鈕,則記錄將不被刪除。具體的圖見書上7.6.3修改數據
在SQLServer中,除使用UPDATE語句修改數據表中的數據外,還可以在企業管理器中,在查看資料庫表的數據時修改數據,但這種方式不能應付大量的數據修改。修改數據的方法是:打開待修改記錄數據的數據表,在如圖7.22所示的窗口中,單擊要修改的記錄,分別向各字段中輸入新數據即可,原數據被新數據覆蓋。注意:數據一旦交互更新後,將不能撤銷操作。除非利用即時的日誌資訊來恢復。7.7數據完整性
資料庫的完整性是指數據庫數據的正確性、有效性和相容性,SQLServer2000有全面的措施來保障數據完整性。7.7.1數據完整性概述
數據完整性(DataIntegrity)是指數據的精確性和可靠性。它是為防止資料庫中存在不符合語義規定的數據和防止因錯誤資訊的輸入輸出造成無效操作或錯誤資訊而提出的。數據完整性分為四類:實體完整性(EntityIntegrity),域完整性(DomainIntegrity),SQLServer提供了一些工具來幫助用戶實現數據完整性,其中最主要的是規則,默認,約束和觸發器7.7.2規則
.
所謂規則是指當您對表做新建或操作時該列輸入值必須符合預先設置的條件,如果不符合的話SQLServer就不會讓該條數據新建至表內或被操作。一、利用企業管理器來管理規則首先在企業管理器主介面下利用滑鼠選擇要管理規則的資料庫,將其展開。選中“規則”彈出如圖7.24的介面。如要查看某一列規則的內容,在列規則名稱處雙擊滑鼠即可如果要更改某一處規則名的話,在該列規則名稱處單擊滑鼠右鍵,在出現的快捷菜單中選取重命名即可。也可以在查詢分析器下執行sp_rename來更改規則的名稱,以下是sp_rename的語法:sp_rename舊規則名稱,新規則名稱
7.7.2規則二、創建規則
在企業管理器主介面下利用滑鼠選擇要創建規則的資料庫,將其展開。選取“規則”單擊滑鼠右鍵,在出現的快捷菜單中選取“新建規則”
在“名稱”處輸入規則的名稱,在“文本”處輸入該規則運算式。規則的條件運算式必須以局部變數名稱起頭(也即第一個字元必須為“@”),該變數名稱可以隨意取名。三、使用CREATERULE命令創建規則
CREATERULE命令的語法如下:CREATERULE[擁有者.]規則名稱AS條件運算式(規則的定義)。
7.7.2規則
規則的定義可以是用於WHERE條件子句中的任何運算式,可包含算術運算符,關係運算符和謂詞(如IN,LIKE,BETWEEN等)。
[例11]
創建學生性別規則。
createruleru_sexas@sexin('男','女')
四、用存儲過程查看規則使用sp_helptext存儲過程可以查看規則的細節,其語法規則如下:
sp_helptext[@objname=]'name'
其中,[@objname=]'name'子句指明對象的名稱,sp_helptext存儲過程查看的對象可以是當前資料庫中的規則,默認,觸發器,視圖或為加密的存儲過程。
7.7.2規則[例12]
查看名稱為“ru_sex”的規則的內容。
execsp_helptext'ru_sex'
五、規則的綁定與鬆綁當規則創建好後它必須和表內的列綁定才可以發揮作用。要將規則定義與表列綁定,首先在企業管理器下單擊資料庫的對象“規則”,即可在右邊的窗口中看到已創建的規則名稱,在相應的規則名稱上面單擊滑鼠右鍵,從快捷菜單中選擇“屬性”選項,會出現“規則屬性”對話框在“規則屬性”對話框中,單擊“綁定UDT”按鈕,則出現“綁定規則到用戶自定義數據類型”的對話框,單擊“綁定列”按鈕則出現“將規則綁定到列”的對話框。
7.7.2規則
在該對話框中,在“表”所對應的下拉列表中,選擇相應的數據表(如STUDENT表),在左邊“未綁定的列”列表只能單擊要綁定的某個列(如sex),然後單擊“添加”按鈕,將該列添加到“綁定列”中,最後單擊“確定”,這時規則就被綁定到所選定的列上了。除了用企業管理器綁定規則外,還可以使用存儲過程綁定規則。
(1)存儲過程sp_bindrule可以將一個規則綁定到表的一列或一個用戶自定義數據類型上。其語法如下:
sp_bindrule[@rulename=]'rule',[@objname=]'object_name'[,'futureonly']7.7.2規則各參數說明如下:①[@rulename=]'rule'指定規則名稱。②[@objname=]'object_name'指定規則綁定的對象。③'futureonly'選項僅在綁定規則到用戶自定義數據類型上時才可以使用。當指定此選項時,只有以後使用此用戶自定義數據類型的列會應用新規則,而當前已經使用此數據類型的列不受影響。[例13]
綁定規則ru_sex到s表的字段sex。
execsp_bindrule'ru_sex','s.sex'
注意:規則對已經輸入表中的數據不起作用。與表的列綁定的規則優先於與用戶自定義數據類型綁定的規則。因此,如果表的列的數據類型與規則A綁定,同時列又與規則B綁定,則以規則B為列的規則。7.7.2規則(2)用存儲過程sp_unbindrule其語法格式如下:sp_unbindrule[@objname=]'object_name'[,'futureonly']
其中,‘futureonly’選項同綁定時一樣,僅用於用戶自定義數據類型,它指定現有的用此用戶自定義數據類型定義的列仍然保持與此規則的綁定。
[例14]
解除已綁定到S表的字段sex的規則ru_sex。
execsp_unbindrule'ru_sex‘六、刪除規則(1)用企業管理器刪除規則。注意:在刪除一個規則前必須先將與其綁定的對象解除綁定。
7.7.3默認
[例15]
刪除上面已創建的規則ru_sex。DROPRULEru_sex
所謂默認(default)是用戶輸入記錄時沒有指定具體數據的列中自動插入的數據。1創建默認
(1)用CREATEDEFAULT命令創建默認
CREATEDEFAULT命令用於在當前資料庫中創建默認對象,其語法如下:CREATEDEFAULTdefault_nameASconstant_expression其中,default_name是要創建的默認的名稱,constant7.7.3默認expression子句是默認的定義,該子句可以是數學運算式或函數,也可以包含表的列名或其他資料庫對象。[例16]
創建年齡的默認值age_defa。CREATEDEFAULTage_defaas'20'設定默認值後,當用戶在輸入記錄數據時,如果未提供字段age的值,系統將自動默認其值為“20”歲。(1)用企業管理器查看默認(2)用企業管理器創建默認
2.查看和修改默認(1)用企業管理器查看默認
(2)用存儲過程sp_helptext查看默認使用sp_helptext存儲過程可以查看默認的資訊。[例17]
查看sex_defa的默認。execsp_helptextsex_defa7.7.3默認3.默認的綁定與鬆綁創建默認後,默認僅僅是一個存在於資料庫中的對象,並未發生作用,默認同規則一樣,需要將它與資料庫表或用戶自定義對象綁定。
(1)用企業管理器管理默認的綁定用企業管理器管理默認的綁定,方法如下:在企業管理器的左側窗格中,展開相應的資料庫目錄,資料庫的對象“默認”上面單擊右鍵,這時在右側窗格中即可看到已建立的各個默認的資訊,在某個默認的名稱上面單擊右鍵,從快捷菜單中選擇“屬性”菜單項,即會出現“默認屬性”對話框。單擊“綁定UDT”按鈕,則出現“綁定默認到表的列”的對話框。用他們來管理默認與表的列以及用戶自定義數據類型之間的綁定非常方便。
7.7.3默認(2)用存儲過程sp_bindefault綁定默認存儲過程sp_bindefault可以將一個默認綁定到表的一列或一個用戶自定義數據類型上。其語法如下:sp_bindefault[@defname=]'default',[@objname=]'object_name'[,'futureonly'][例18]綁定默認sex_defa到數據表S的sex上。execsp_bindefaultsex_defa,'S.[sex]‘4.刪除默認(1)用企業管理器刪除默認(2)使用DROPDEFAULT命令刪除默認使用DROPDEFAULT命令刪除當前資料庫中的一個或多個默認,其語法如下:DROPDEFAULT{默認名}[,…n]7.7.3默認[例19]
刪除學生性別的默認值sex_defa。DROPDEFAULTsex_defa注意:刪除一個默認值前必須先將與其綁定的對象解除綁定。7.8數據查詢
資料庫是為更方便有效的管理數據而存在的,人們希望可以隨時提供有效的所需要的數據資訊。因此,對用戶來說,數據查詢是資料庫最重要的功能。在資料庫中數據查詢是通過SELECT語句來完成的。SELECT語句可以從資料庫中按用戶要求檢索數據,並將查詢結果以表格的形式返回。[例20]
查詢系科為“電腦”系的學生的學號和姓名,並把查詢結果存放到變數@sno和@sn中。命令為:
declare@snovarchar(10)declare@snvarchar(10)select@sno=sno,@sn=snfromswheresept='電腦'SELECT@local_variable通常用於將單個值返回到變數中。
7.8數據查詢
如果SELECT語句返回多個值,則將返回的最後一個值賦給變數。如果SELECT語句沒有返回行,變數將保留當前值。如果expression是不返回值的標量子查詢(集合形式),則將變數設為NULL。
7.9視圖
視圖是與基本表同等重要的概念,在第3章已有介紹,這裏主要介紹關於它的互動式介面7.9視圖操作與管理的內容。7.9.1創建視圖一、使用創建視圖嚮導使用創建視圖嚮導創建視圖的步驟如下:(1)打開企業管理器,選擇工具→嚮導,打開“選擇嚮導”對話框,在“選擇嚮導”對話框中展開“資料庫”節點,並選擇它的下一級節點“創建視圖嚮導”,單擊“確定”按鈕繼續(如圖7.31所示),此時會出現“歡迎使用創建視圖嚮導”對話框,在該對話框中單擊“下一步”。(2)在如圖7.32的窗口中選擇需要的資料庫,單擊“下一步”。這裏選擇student資料庫。
7.9.1創建視圖
(3)在如圖7.33所示的窗口中選擇資料庫的對象,方法是在選擇對象的“包含在視圖中”中選種複選框,單擊“下一步”。(4)選擇將在視圖中顯示的所有字段,單擊“下一步。”(5)在“定義限制”窗口中輸入WHERE語句(如圖7.34)所示(6)在“命名視圖”中輸入視圖名稱。(7)在“完成創建視圖嚮導”對話框中單擊“確定”即可。二、在企業管理器中互動式創建視圖在企業管理器中,展開指定的資料庫,點按“視圖”,按滑鼠右鍵,從彈出的快捷菜單中選擇“新建視圖”菜單項;
7.9.2管理視圖一、查看和修改視圖(1)方法1①啟動企業管理器,登錄到指定的伺服器。
②打開要查看或修改視圖的資料庫檔夾,選種“視圖”圖示,此時在右面的窗格中顯示當前資料庫的所有視圖。
③在右面窗格中,用右鍵單擊要查看的視圖,在彈出的菜單中選擇“屬性”菜單項,打開“視圖屬性”對話框。
④在該對話框內可流覽到該視圖的SQL文本,也可以對該視圖進行修改,然後單擊“檢查語法”按鈕來對語句合法性進行檢查。若要對視圖的訪問許可權進行設置,單擊“許可權”即可。(2)方法27.9.2管理視圖②打開要查看或修改視圖的資料庫檔夾,選種“視圖”圖示,此時在右面的窗格中顯示當前資料庫的所有視圖。
③在右面窗格中,用右鍵單擊要查看的視圖,在彈出的菜單中選擇“設計視圖”菜單項,可即時進入到設計視圖的窗口,
④在該窗口中可按照創建視圖的方法對原有的視圖進行各種修改。二、使用存儲過程在SQLServer中有三個用於瞭解視圖資訊的關鍵存儲程,即sp_depends,sp_help和sp_helptext。其語法格式如下:sp_depends[@objname=]'object'
參數:[@objname=]'object'下麵的命令列出依賴
Student表的資料庫對象。7.9.2管理視圖EXECsp_depends'Student'
三、刪除視圖除了SQL命令刪除視圖外,在SQLServer中,通過企業管理器也可刪除視圖。(1)啟動企業管理器,登錄到指定的伺服器。(2)打開要刪除視圖的資料庫檔夾,選種“視圖”,此時在右面的窗格中顯示當前資料庫的所有視圖。(3)在右窗格中,用右鍵單擊要刪除的視圖,在彈出菜單中選擇“刪除”菜單項即可刪除視圖。7.10備份和還原
資料庫的備份和還原是維護資料庫的安全性和完整性的重要組成部分。通過備份資料庫,可以防止因為各種原因而造成的數據破壞和丟失。還原是指在造成數據丟失和破壞以後利用備份來恢復數據的操作。7.10.1備份和還原概念
備份和還原是SQLServer的重要組成部分。備份是對SQLServer資料庫或事務日誌進行複製,資料庫備份記錄了在進行備份這一操作時資料庫中所有數據的狀態,如果資料庫因意外而損壞,這些備份檔將在資料庫還原時用來還原資料庫。
一、資料庫備份的類型7.10.1備份和還原概念SQLServer2000提供了四種主要的備份方式:資料庫備份,事務日誌備份,差異備份,檔和文件組備份。下麵分別介紹:(1)資料庫備份資料庫備份是指對數據庫的完整備份,包括所有的數據以及資料庫對象。
(2)事務日誌備份事務日誌備份是指對數據庫發生的事務進行備份,包括從上次進行事務日誌備份,差異備份和數據庫完全備份之後,所有已經完成的事務。(3)差異備份
7.10.1備份和還原概念
差異備份是指將最近一次數據庫備份以來發生的數據變化備份起來。
(4)檔和文件組備份檔或檔組備份是指對數據庫檔或檔組進行部分,但它不象完整的資料庫備份那樣同時也進行事務日誌備份。使用該備份方法可提高資料庫還原的速度,因為它僅對遭到破壞的檔或檔組進行還原。二、備份和還原的策略(1)如果只進行資料庫備份,那麼將無法還原自最近一次數據庫備份以來資料庫中所發生的所有事務。
7.10.1備份和還原概念
(2)如果在進行資料庫備份時也進行事務日誌,那麼可以將資料庫還原到失敗點。從以上問題可以看出,對數據庫一致的要求程度成為我們選擇備份方案的主要的普遍性的問題。另外需要注意的是我們在備份時要決定應使用哪種備份設備,如磁片或磁帶,並且決定如何在備份設備上創建備份,比如將備份添加到備份設備上或將其覆蓋。
7.10.2創建備份和還原
在進行備份前必須先創建備份設備。備份設備是用來存儲資料庫、事務日誌或檔和文件組備份的存儲介質。
1.如何創建磁片備份設備(企業管理器)
①展開伺服器組,然後展開伺服器。
②展開"管理"檔夾,右擊"備份",然後單擊"新建備份設備"命令。如圖7.367.10.2創建備份和還原③在“名稱”框中輸入該命名備份設備的名稱。
④單擊"檔案名",然後執行下列操作之一:輸入磁片備份設備所使用的檔案名。單擊流覽(“...”)按鈕顯示“備份設備位置”對話框,再選擇磁片備份設備所使用的本地電腦上的物理檔。
2.如何刪除備份設備(使用企業管理器)
①展開伺服器組,然後展開伺服器。
②展開"管理"檔夾,然後單擊"備份"。
③在詳細資訊窗格中,右擊要刪除的命名備份設備。7.10.2創建備份和還原
④單擊"刪除"命令並確認刪除。使用存儲過程管理備份設備:(1)使用sp_addumpdevice創建備份設備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創建備份和還原[例22]
下麵的示例顯示一個遠程磁片備份設備。USEmasterEXECsp_addumpdevice'disk','networkdevice','\\servername\sharename\path\filename.ext'[例23]
下麵的示例添加TAPEDUMP1設備,其物理名稱為\\.\Tape0。USEmasterEXECsp_addumpdevice'tape','tapedump1','\\.\tape0'7.10.2創建備份和還原
sp_dropdevice刪除備份設備,其語法格式為:
sp_dropdevice[@logicalname=]'device'[,[@delfile=]'delfile']其中,[@logicalname=]'device'資料庫設備或備份設備的邏輯名稱,device
的數據類型為
sysname,沒有默認值。[@delfile=]'delfile'指出是否應該刪除物理備份設備檔。[例24]下麵的示例從SQLServer除去TAPEDUMP1磁帶轉儲設備。sp_dropdevice'TAPEDUMP1'
7.10.3資料庫備份
在SQLServer中無論是資料庫備份,還是事務日誌備份,差異備份,檔和文件組備份都執行同樣的步驟,。(1)展開伺服器組,然後展開伺服器。(2)展開“資料庫”檔夾,右擊資料庫,指向“所有任務”子菜單,然後單擊“備份資料庫”命令。如圖7.38
(3)在該對話框中的“常規“選項卡中的”備份“選項欄內選擇要進行備份的類型。(4)通過“添加“按鈕來選擇備份的設備。(5)若選擇了“重寫“選項欄中的重寫現有媒體,則將原備份覆蓋。
(6)“調度”複選框,可對備份的時間表進行設置。7.10.4還原資料庫1.
展開伺服器組,然後展開伺服器。2.
展開“資料庫”檔夾,右擊資料庫,指向“所有任務”子菜單,然後單擊“還原資料庫”命令。在“還原為數據庫”框中,如果要還原的資料庫名稱與顯示的默認資料庫名稱不同,請在其中進行輸入或選擇。單擊“資料庫”。5.
在"要還原的第一個備份"列表中,選擇要還原的備份集。6
.
在"還原"列表中,單擊要還原的資料庫備份。7.10.4還原資料庫
單擊"選項"選項卡並執行下列操作:(可選)①在"還原為"中輸入組成資料庫備份的各資料庫檔的新名稱或新位置。②單擊"使資料庫可以繼續運行,但無法還原其他事務日誌",如果沒有其他要應用的事務日誌或差異資料庫備份。③如果要應用另一個事務日誌或差異資料庫備份,則單擊"使資料庫不再運行,但能還原其他事務日誌"。
7.在設置完選項後,單擊“確定“即可。
7.10.5備份和還原系統資料庫
系統資料庫保存了有關SQLServer的許多重要數據相信,這些數據的丟失將給系統帶來極為嚴重的後果。所以我們也必須對數據庫進行備份。這樣一旦系統或資料庫丟失,則可以通過還原來重建系統資料庫。在SQLServre中,重要的系統資料庫主要有master,msdb,model。雖然tempdb也是系統資料庫,但沒有必要對其進行備份,因為SQLServre每次啟動都會重新創建該資料庫,而當SQLServer停止運行時,tempdb資料庫中所有數據都會被自動清除。在這裏我們主要討論master資料庫的備份和還原問題。7.10.5備份和還原系統資料庫(1)增加或刪除用戶數據庫。但是如果增加或刪除檔或檔組,或用戶數據庫自動增加來容納新添加的數據,這些操作並不對master資料庫產生影響,所以此時不必對它進行備份。(2)創建新的登錄或執行與登錄有關的操作。但是增加資料庫用戶並不影響master資料庫。(3)更改任何伺服器範圍的配置選項或資料庫配置選項。(4)創建或刪除備份設備。(5)為進行分佈式查詢或遠程過程調用而對數據庫伺服器進行配置,如增加連接伺服器或遠程登錄等7.10.5備份和還原系統資料庫
使用RebuildMasterUtility來重建master資料庫,主要執行以下步驟。(1)關掉SQLServer,然後運行位於“…/MicrosoftSQLServer/80/tools/Binn”下的Rebuildm.exe檔,出現“重建master”對話框。(2)在出現的對話框中單擊“流覽”按鈕來流覽包括Data檔的原始目錄。(3)單擊“設置”按鈕出現“排序規則設置”對話框。(4)單擊“重建”按鈕來重建master資料庫。將資料庫移到另外的伺服器或磁片上需要進行以下操作。7.10.5備份和還原系統資料庫(1)拆開資料庫(2)把資料庫檔(資料庫檔和事務日誌檔)移到另外的伺服器或磁片上。(3)連接伺服器並定義資料庫檔的存放位置。在SQLServer中,拆開資料庫使用的Transact-SQL命令是sp_detach_db,其語法格式為:sp_detach_db[@dbname=]'dbname'[,[@skipchecks=]'skipchecks']
其中,@dbname表示資料庫名稱;@skipchecks如果為True將修改關於資料庫的所有統計表,反之則不修改。
7.10.5備份和還原系統資料庫[例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語言最主要的用途是設計伺服器的能夠在後臺執行的程式塊,如:存儲過程,觸發器等。7.11.1Transact-SQL簡介一、在Transact-SQL中可以使用兩種變數:局部變數和全局變數1.局部變數局部變數是用戶可以自定義的變數,它的作用範圍僅在程式內部。局部變數在程式中通常用來存儲從表中查詢到的數據,或當做程式執行過程中暫存變數。局部變數必須以@開頭,而且必須先用DECLARE命令說明後才可使用。其語法形式如下:
DECLARE@變數名變數類型[,@變數名變數類型……]
其中變數類型可以是SQLServer2000支持的所有數據類型。7.11.1Transact-SQL簡介
在Transact-SQL中不能像在一般的程式語言中一樣使用“變數=變數值”來給變數賦值,必須使用SELECT或SET命令來設定變數的值。其語法如下:
SELECT@局部變數=變數值
SET@局部變數=變數值例27]
聲明兩個變數並賦值。
USENorthwind
GODECLARE@FirstNameVariableNVARCHAR(20),@RegionVariableNVARCHAR(30)SET@FirstNameVariable=N'Anne'SET@RegionVariable=N'WA'7.11.1Transact-SQL簡介2.全局變數全局變數是SQLServer2000系統內部使用的變數,其作用範圍並不局限於某一程式,而是任何程式均可隨時調用。全局變數通常存儲一些SQLServer2000的配置設定值和效能統計數據。用戶可在程式中用全局變數來測試系統的設定值或Transact-SQL命令執行後的狀態值。全局變數不是由用戶的程式定義的,而是有系統定義和維護的,只能使用預先說明及定義的全局變數。引用全局變數時必須以“@@”開頭。SQLServer提供的全局變數共有33個,但並不是每個都可用,而且局部變數與全局變數不能同名。否則會在應用中出錯。
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函數的元素需要包含語句塊。(3)IF或ELSE子句需要包含語句塊。BEGIN...END語句塊允許嵌套。
7.11.1Transact-SQL簡介2.IF…ELSEIF…ELSE的語法格式如下:IF<條件運算式><命令行或程式塊>ELSE<條件運算式><命令行或程式塊>
IF語句用於條件的測試。結果流的控制取決於是否指定了可選的ELSE語句:
(1)指定IF而無
ELSE:IF語句取值為TRUE時,執行IF語句後的語句或語句塊。IF語句取值為FALSE時,跳過IF語句後的語句或語句塊。
2.IF…ELSEIF…ELSE的語法格式如下:IF<條件運算式><命令行或程式塊>ELSE<條件運算式><命令行或程式塊>IF語句用於條件的測試。結果流的控制取決於是否指定了可選的ELSE語句:
(1)指定IF而無ELSE:IF語句取值為TRUE時,執行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函數將某個運算式與一組簡單運算式進行比較以確定結果。(2)CASE搜索函數計算一組布爾運算式以確定結果。兩種格式都支持可選的ELSE參數。CASE的語法格式為:格式1:CASE<運算式>WHEN<運算式>THEN<運算式>…7.11.1Transact-SQL簡介WHEN<運算式>THEN<運算式>[ELSE<運算式>]END該語句的執行過程是:將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表中查詢所有同學選課成績情況,凡成績為空者輸出“缺考”,小於60分的輸出“不及格”,60分至70分輸出“及格”,70分至90分輸出“良好”,大於或等於90分的輸出“優秀”。SELECTSNO,CNO,SCORE=CASEWHENSCOREISNULLTHEN'未考'WHENSCORE<60THEN'不及格'WHENSCOREBETWEEN60AND69THEN'及格'WHENSCOREBETWEEN70AND89THEN'良好'WHENSCORE>=90THEN'優秀'7.11.1Transact-SQL簡介4.WHILE…CONTINUE…BREAK
只要指定的的條件為真,則WHILE語句重複語句或語句塊。BREAK語句退出最內層WHILE迴圈,CONTINUE語句重新開始WHILE迴圈。如果沒有其他行可以處理,則程式可能執行BREAK語句。如果要繼續執行代碼,則可執行CONTINUE語句。
WHILE…CONTINUE…BREAK的語法格式如下:
WHILE<條件運算式>BEGIN<命令行或程式塊>7.11.1Transact-SQL簡介
5.WAITFORWAITFOR命令用來暫時停止程式執行,直到所設定的等待時間已過或所設定的時間已到才繼續往下執行。其中“時間”必須為DATETIME類型的數據,但不能包括日期。各關鍵字含義如下:(1)DELAY:用來設定等待的時間,最多可達24小時(2)TIME:用來設定等待結束的時間點(3)ERROREXIT:直到處理非正常中斷(4)PROCESSEXIT:直到處理正常或非正常中斷(5)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 北京2025年北京市律师协会秘书处招聘笔试历年参考题库附带答案详解
- 危化品驾驶员聘用合同
- 离婚起草协议书格式
- 二零二五商场广告租赁合同
- 二零二五住宅物业服务合同示范文本
- 二零二五版合同股权转让协议
- 社区医疗合作协议书二零二五年
- 委托物业管理合同标准样本
- 变更租赁合同的三方协议
- 体育中心场地出租合同二零二五年
- DLT 5285-2018 输变电工程架空导线(800mm以下)及地线液压压接工艺规程
- Unit3TravelPlansLesson3(课件)人教新起点版英语四年级下册
- 《3-6岁儿童学习与发展指南》考试复习题库350题(含答案)
- 小学生文明如厕
- JBT 11699-2013 高处作业吊篮安装、拆卸、使用技术规程
- 2024年全国版图知识竞赛(小学组)考试题库大全(含答案)
- 专题08 八年级下册易混易错总结-备战2024年中考道德与法治一轮复习知识清单(全国通用)
- 中集集团招聘题库
- 赣政通管理员操作手册
- 2024年ISTQB认证笔试历年真题荟萃含答案
- 2021年以工代赈项目实施工作指南(试行)
评论
0/150
提交评论