SQL Server 2000 數(shù)據(jù)庫管理系統(tǒng)
《SQL Server 2000 數(shù)據(jù)庫管理系統(tǒng)》由會(huì)員分享,可在線閱讀,更多相關(guān)《SQL Server 2000 數(shù)據(jù)庫管理系統(tǒng)(179頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、1SQL Server 2000SQL Server 2000數(shù)據(jù)庫管理系統(tǒng)數(shù)據(jù)庫管理系統(tǒng) 2關(guān)于關(guān)于 SQL Server SQL Server SQL Server SQL Server 是一個(gè)是一個(gè)關(guān)系數(shù)據(jù)庫關(guān)系數(shù)據(jù)庫管理系統(tǒng)。管理系統(tǒng)。它最初是由它最初是由MicrosoftMicrosoft、SybaseSybase和和Ashton-TateAshton-Tate三三家公司聯(lián)合開發(fā)的,于家公司聯(lián)合開發(fā)的,于19881988年推出了第一個(gè)年推出了第一個(gè)OS/2OS/2版版本。本。后來,后來,Ashton-TateAshton-Tate公司退出了公司退出了SQL ServerSQL Ser
2、ver的開發(fā)。的開發(fā)。而在而在Windows NTWindows NT推出后,推出后,MicrosoftMicrosoft與與SybaseSybase在在SQL ServerSQL Server的開發(fā)上就分道揚(yáng)鑣了:的開發(fā)上就分道揚(yáng)鑣了:vMicrosoftMicrosoft將將SQL Server SQL Server 移植到移植到Windows NTWindows NT系統(tǒng)上,系統(tǒng)上,專注于開發(fā)推廣專注于開發(fā)推廣SQL ServerSQL Server的的Windows NTWindows NT版本;版本;vSybase Sybase 則較專注于則較專注于SQL ServerSQL Ser
3、ver在在UNIXUNIX操作系統(tǒng)上的操作系統(tǒng)上的應(yīng)用。應(yīng)用。我們介紹的是我們介紹的是Microsoft SQL ServerMicrosoft SQL Server 。3 SQL ServerSQL Server 2000 2000是是MicrosoftMicrosoft公司推出的公司推出的SQL SQL ServerServer數(shù)據(jù)庫管理系統(tǒng)的一個(gè)重要版本。數(shù)據(jù)庫管理系統(tǒng)的一個(gè)重要版本。該版本繼承了該版本繼承了SQL Server 4.0SQL Server 4.0版本的優(yōu)點(diǎn),同版本的優(yōu)點(diǎn),同時(shí)又比它增加了許多更先進(jìn)的功能:時(shí)又比它增加了許多更先進(jìn)的功能:v具有具有使用方便使用方便、可伸縮
4、性好可伸縮性好與相關(guān)軟件與相關(guān)軟件集成程度高集成程度高等優(yōu)點(diǎn)。等優(yōu)點(diǎn)。v可跨越從運(yùn)行可跨越從運(yùn)行Microsoft Windows Microsoft Windows 9898的膝上型電腦的膝上型電腦到運(yùn)行到運(yùn)行Microsoft Windows Microsoft Windows 20002000的大型多處理器的服的大型多處理器的服務(wù)器等多種平臺(tái)使用。務(wù)器等多種平臺(tái)使用。SQL Server 2000SQL Server 2000包括包括4 4個(gè)常見版本:個(gè)常見版本: 4(1 1)企業(yè)版()企業(yè)版(Enterprise EditionEnterprise Edition)q 支持所有的SQL
5、 Server 2000 特性,可作為大型Web 站點(diǎn)、企業(yè)OLTP(聯(lián)機(jī)事務(wù)處理)以及數(shù)據(jù)倉庫系統(tǒng)等的產(chǎn)品數(shù)據(jù)庫服務(wù)器。(2 2)標(biāo)準(zhǔn)版()標(biāo)準(zhǔn)版(Standard EditionStandard Edition)q 用于小型的工作組或部門。(3 3)個(gè)人版()個(gè)人版(Personal EditionPersonal Edition)q 用于單機(jī)系統(tǒng)或客戶機(jī)。(4 4)開發(fā)者版()開發(fā)者版(Developer EditionDeveloper Edition)q 用于程序員開發(fā)應(yīng)用程序,這些程序需要SQL Server 2000 作為數(shù)據(jù)存儲(chǔ)設(shè)備。v此外,此外,SQL Server 2000
6、 SQL Server 2000 還有還有Desktop EngineDesktop Engine(桌(桌面引擎)和面引擎)和Windows CEWindows CE 版,用戶可以根據(jù)實(shí)際情況選版,用戶可以根據(jù)實(shí)際情況選擇所要安裝的擇所要安裝的SQL Server 2000 SQL Server 2000 版本。版本。 54.14.1SQL Server 2000SQL Server 2000的新特性的新特性 4.1.14.1.1數(shù)據(jù)庫增強(qiáng)數(shù)據(jù)庫增強(qiáng) 1. 1. 支持?jǐn)U展標(biāo)示語言支持?jǐn)U展標(biāo)示語言XMLXML(Extensible Markup LanguageExtensible Markup
7、 Language)SQL Server 2000 SQL Server 2000 對(duì)對(duì)XML XML 的支持表現(xiàn)在以下幾個(gè)方面:的支持表現(xiàn)在以下幾個(gè)方面:q可以通過URL(Uniform Resource Locator)訪問SQL Serverq支持XML-Data 模式q可檢索編寫XML 數(shù)據(jù)qSQL Server 2000 OLE DB 增加了對(duì)XML 文檔的支持2. 2. 新的數(shù)據(jù)類型新的數(shù)據(jù)類型qSQL Server 2000 中增加了3 種新的數(shù)據(jù)類型:BIGINT、SQL_VARIANT和TABLE。3. 3. 數(shù)據(jù)行中的數(shù)據(jù)行中的TextText類型數(shù)據(jù)類型數(shù)據(jù)q SQL S
8、erver 2000 中可以將TEXT 和IMAGE 類型的數(shù)據(jù)直接存放到表的數(shù)據(jù)行中,而不是存放到不同的數(shù)據(jù)頁中,這就減少了用于存儲(chǔ)TEXT 和IMAGE 類型的空間并相應(yīng)減少了磁盤處理這類數(shù)據(jù)的I/O 數(shù)量。64. 4. 用戶自定義函數(shù)用戶自定義函數(shù)q SQL Server 2000 擴(kuò)展了Transact-SQL語言的可編程性,用戶可以創(chuàng)建自己的Transact-SQL函數(shù)。用戶自定義函數(shù)可以返回一個(gè)數(shù)量值或表。5. 5. 索引增強(qiáng)索引增強(qiáng)q 可以在計(jì)算列上創(chuàng)建索引,這是一個(gè)很大的改進(jìn)。6. 6. 全文檢索增強(qiáng)全文檢索增強(qiáng)q 全文檢索中增加了改變跟蹤和圖形過濾的功能,其中,圖形過濾功能允
9、許對(duì)存儲(chǔ)在IMAGE類型列中的文檔數(shù)據(jù)進(jìn)行查詢和創(chuàng)建索引。7. 7. 索引化視圖索引化視圖q 索引化視圖允許在視圖上創(chuàng)建索引,這就大大提高了需要頻繁進(jìn)行連接查詢的程序的性能。8. 8. 分布式查詢?cè)鰪?qiáng)分布式查詢?cè)鰪?qiáng)q SQL Server 2000 引入了OPENROWSET()的函數(shù),它可以指定在分布式查詢中的一個(gè)特定的連接信息,分布式查詢優(yōu)化器的功能有了進(jìn)一步的提高,授予了OLE DB 數(shù)據(jù)源更多的SQL 操作權(quán)。9. 9. 觸發(fā)器類型觸發(fā)器類型q 創(chuàng)建觸發(fā)器時(shí)可以通過FOR 子句來指定觸發(fā)器類型為INSTEAD OF 型或AFTER 型,不同類型的觸發(fā)器執(zhí)行的時(shí)機(jī)不同。710. 10.
10、級(jí)聯(lián)參考完整性約束級(jí)聯(lián)參考完整性約束q 級(jí)聯(lián)參考完整性約束可以控制在刪除或更新有外鍵約束的數(shù)據(jù)時(shí)所采取的操作,這種控制是通過在CREATE TABLE 或ALTER TABLE 命令中的REFERENCES 子句中加入ON DELETE 或ON UPDATE 子句來實(shí)現(xiàn)的。11. Collation 11. Collation 增進(jìn)增進(jìn)q SQL Server 2000 用Collation 來替代Code pages 和Sort Orders,它比以前的版本提供了更多對(duì)Collation 的支持,并引入了一個(gè)基于Windows Collations 的新的Collation集合,可以指定數(shù)據(jù)
11、庫級(jí)或列級(jí)的Collation。 84.1.24.1.2聯(lián)合數(shù)據(jù)庫服務(wù)器聯(lián)合數(shù)據(jù)庫服務(wù)器 SQL Server 2000 SQL Server 2000 支持分布式的分區(qū)視圖,可支持分布式的分區(qū)視圖,可以跨越多個(gè)服務(wù)器水平地分割表。以跨越多個(gè)服務(wù)器水平地分割表。1. 1. 多個(gè)多個(gè)SQL Server SQL Server 實(shí)例實(shí)例q SQL Server 2000 支持在同一計(jì)算機(jī)上同時(shí)運(yùn)行多個(gè)關(guān)系數(shù)據(jù)庫實(shí)例,每個(gè)實(shí)例有其獨(dú)立的系統(tǒng)和用戶數(shù)據(jù)庫集合,應(yīng)用程序采用與連接不同計(jì)算機(jī)上的SQL Server 實(shí)例大致相同的方式連接同一計(jì)算機(jī)上的各個(gè)實(shí)例。2. Failover 2. Failove
12、r 群集增強(qiáng)群集增強(qiáng)q 對(duì)Failover 群集的管理有了較大的改善,可以方便地安裝、配置和管理一個(gè)SQL Server 2000的Failover 群集。3. 3. 網(wǎng)絡(luò)庫(網(wǎng)絡(luò)庫(Net-LibraryNet-Library)增強(qiáng))增強(qiáng)q 簡化了客戶機(jī)配置并支持同一計(jì)算機(jī)上的多實(shí)例連接。4. Kerberos 4. Kerberos 和安全授權(quán)和安全授權(quán)q SQL Server 2000 使用Kerberos 來支持客戶機(jī)和服務(wù)器之間相互的身份驗(yàn)證,使用Kerberos 和授權(quán)來支持復(fù)合認(rèn)證以及SQL Server 注冊(cè)。95. 5. 備份(備份(BackupBackup)和還原()和還原
13、(RestoreRestore)增強(qiáng))增強(qiáng)q SQL Server 2000 引入了一個(gè)更容易理解的模型來指定備份和還原的選項(xiàng),同時(shí)還支持使用事務(wù)日志標(biāo)識(shí)來還原工作到指定點(diǎn)或進(jìn)行數(shù)據(jù)庫的部分還原。6. 6. 對(duì)公用操作的可伸縮性增強(qiáng)對(duì)公用操作的可伸縮性增強(qiáng)q 增強(qiáng)的公用操作包括快速差異備份并行的數(shù)據(jù)庫一致性校驗(yàn)和并行掃描。7. 7. 復(fù)制增強(qiáng)復(fù)制增強(qiáng)q SQL Server 2000 改進(jìn)并增強(qiáng)了合并復(fù)制、快照復(fù)制和事務(wù)復(fù)制等功能,并在復(fù)制中增加了可變化的訂閱功能,因而實(shí)施、監(jiān)視和管理復(fù)制變得更加容易。8. 8. 數(shù)據(jù)轉(zhuǎn)換服務(wù)增強(qiáng)數(shù)據(jù)轉(zhuǎn)換服務(wù)增強(qiáng)(1 1)支持鍵和約束。)支持鍵和約束。(2 2
14、)DTS DTS 支持鍵和約束可以使用數(shù)據(jù)導(dǎo)入導(dǎo)出向?qū)еС宙I和約束可以使用數(shù)據(jù)導(dǎo)入導(dǎo)出向?qū)脑幢硐蚰繕?biāo)表移動(dòng)主鍵、外鍵和約束。從源表向目標(biāo)表移動(dòng)主鍵、外鍵和約束。10(3 3)新的定制任務(wù))新的定制任務(wù)q SQL Server 2000 DTS Designer 和DTS 對(duì)象模型提供了新的自定義任務(wù)功能從而可以創(chuàng)建執(zhí)行任務(wù)的包或設(shè)置基于實(shí)時(shí)環(huán)境屬性的變量,包括從或向Internet 以及FTP 站點(diǎn)導(dǎo)入數(shù)據(jù)、發(fā)送數(shù)據(jù)、以異步方式運(yùn)行包、創(chuàng)建互相發(fā)送消息的包、創(chuàng)建執(zhí)行其它包的包以及在同一事務(wù)中包含多個(gè)包執(zhí)行。(4 4)將)將DTS DTS 包保存在包保存在VB VB 文件中文件中q 將DTS
15、包保存到Microsoft Visual Basic 文件中,可以允許將通過DTS 導(dǎo)入向?qū)?、DTS導(dǎo)出向?qū)Щ駾TS Designer 創(chuàng)建的包與Visual Basic 程序結(jié)合在一起或被需要引用DTS 對(duì)象模型組件的Visual Basic 開發(fā)者用作原型。9. SQL Server Analysis Services9. SQL Server Analysis Servicesq SQL Server 4.0 中的OLAP(Online Analytical Processing)服務(wù)轉(zhuǎn)變?yōu)镾QL Server 2000 中的分析服務(wù)(Analysis Services),分析服務(wù)還包括
16、了新的數(shù)據(jù)挖掘功能。10. SQL Server Meta Data Services10. SQL Server Meta Data Servicesq SQL Server 4.0 中的貯藏室(Repository)部分在SQL Server 2000 中轉(zhuǎn)化為元數(shù)據(jù)服務(wù)(Meta Data Services)。114.24.2SQL Server 2000SQL Server 2000的主要組件的主要組件 SQL Server 2000 SQL Server 2000 提供了一整套的提供了一整套的管理工具管理工具和和實(shí)用程序?qū)嵱贸绦?,使,使用這些工具和程序,可以設(shè)置和管理用這些工具和程序
17、,可以設(shè)置和管理SQL Server SQL Server 進(jìn)行數(shù)據(jù)庫進(jìn)行數(shù)據(jù)庫管理和備份,并保證數(shù)據(jù)的安全和一致。管理和備份,并保證數(shù)據(jù)的安全和一致。下面,對(duì)這些組件做一個(gè)簡單的介紹。下面,對(duì)這些組件做一個(gè)簡單的介紹。1企業(yè)管理器(企業(yè)管理器(Enterprise Manager)q企業(yè)管理器是SQL Server 中最重要的管理工具,在使用SQL Server的過程中大部分的時(shí)間都是和它打交道。q通過企業(yè)管理器可以管理所有的數(shù)據(jù)庫系統(tǒng)工作和服務(wù)器工作,也可以調(diào)用其它的管理開發(fā)工具。2查詢分析器(查詢分析器(Query Analyzer)q查詢分析器用于執(zhí)行Transaction-SQL 命
18、令等SQL 腳本程序,以查詢分析或處理數(shù)據(jù)庫中的數(shù)據(jù),這是一個(gè)非常實(shí)用的工具,對(duì)掌握SQL 語言、理解SQL Server 的工作有很大幫助。q使用查詢分析器的熟練程度是衡量一個(gè)SQL Server 用戶水平的標(biāo)準(zhǔn)。 123服務(wù)管理器(服務(wù)管理器(Service Manager)q服務(wù)管理器用于啟動(dòng)、暫停或停止SQL Server 的4種服務(wù):、DTC(Distributed Transaction Coordinator 分布式事務(wù)協(xié)調(diào)器)MSSQL Server OLAP serviceSQL ServerSQL Server Agent4客戶端網(wǎng)絡(luò)實(shí)用工具(客戶端網(wǎng)絡(luò)實(shí)用工具(Clien
19、t Network Utility)q客戶端網(wǎng)絡(luò)實(shí)用工具用于配置客戶端的連接、測定網(wǎng)絡(luò)庫的版本信息以及設(shè)定本地?cái)?shù)據(jù)庫的相關(guān)選項(xiàng)。5服務(wù)器網(wǎng)絡(luò)實(shí)用工具(服務(wù)器網(wǎng)絡(luò)實(shí)用工具(Server Network Utility)q服務(wù)器網(wǎng)絡(luò)實(shí)用工具用于配置服務(wù)器端的連接、測定網(wǎng)絡(luò)庫的版本信息。6導(dǎo)入和導(dǎo)出數(shù)據(jù)(導(dǎo)入和導(dǎo)出數(shù)據(jù)(Import and Export Data)q導(dǎo)入和導(dǎo)出數(shù)據(jù)采用 DTS Import/Export 向?qū)硗瓿?,此向?qū)О怂械腄TS(Data Transformation Services 數(shù)據(jù)轉(zhuǎn)換服務(wù))工具提供了在OLE DB數(shù)據(jù)源之間復(fù)制數(shù)據(jù)的最簡捷的方法。 137.在
20、在IIS中配置中配置SQL XML支持(支持(Configure SQL XML Support in IIS)qIIS(Internet Information Services 因特網(wǎng)信息服務(wù)),此工具可以在運(yùn)行IIS的計(jì)算機(jī)上定義、注冊(cè)虛擬目錄,并在虛擬目錄和SQL Server 實(shí)例之間創(chuàng)建關(guān)聯(lián)。8事件探查器(事件探查器(Profiler)q事件探查器的功能是監(jiān)視SQL Server 數(shù)據(jù)庫系統(tǒng)引擎事件,主要用于監(jiān)聽SQL Server 系統(tǒng)的運(yùn)行性能。9聯(lián)機(jī)叢書(聯(lián)機(jī)叢書(Books Online)qSQL Server 2000 提供了大量的聯(lián)機(jī)文檔,用戶可以便捷地查詢到許多很有價(jià)
21、值的信息。q一個(gè)優(yōu)秀的SQL Server 管理員必然是使用聯(lián)機(jī)文檔的高手。v另外,在安裝另外,在安裝SQL Server 2000 SQL Server 2000 的同時(shí),安裝了的同時(shí),安裝了SQL SQL ServerServer的升級(jí)向?qū)У纳?jí)向?qū)在“開始”菜單的“程序”項(xiàng)中,將鼠標(biāo)移到“Microsoft SQL Server版本切換”上即可看到SQL Server 升級(jí)向?qū)?。qSQL Server 升級(jí)向?qū)в糜趯⒁粋€(gè)6.5 版本的SQL Server 的設(shè)置和數(shù)據(jù)庫復(fù)制升級(jí)到本機(jī)上安裝的SQL Server 2000 中。 144.34.3Transact-SQLTransact-
22、SQL程序設(shè)計(jì)程序設(shè)計(jì) 在在Transact-SQL Transact-SQL 語言中標(biāo)準(zhǔn)的語言中標(biāo)準(zhǔn)的SQL SQL 語句暢通語句暢通無阻。無阻。Transact-SQL Transact-SQL 也有類似于也有類似于SQL SQL 語言的分類不語言的分類不過做了許多擴(kuò)充。過做了許多擴(kuò)充。在第在第3 3章中,我們?cè)榻B了標(biāo)準(zhǔn)章中,我們?cè)榻B了標(biāo)準(zhǔn)SQLSQL語言的語法語言的語法及其基本使用方法,在此只介紹及其基本使用方法,在此只介紹Transact-SQL Transact-SQL 語言中的其它部分。語言中的其它部分。4.3.14.3.1變量變量 4.3.24.3.2流程控制命令流程控制命令
23、 4.3.34.3.3其它命令其它命令 4.3.44.3.4常用函數(shù)常用函數(shù) 154.3.1變量變量 Transact-SQL Transact-SQL 中可以使用兩種變量:中可以使用兩種變量:局部變量局部變量和和全局變量全局變量。 1局部變量局部變量v局部變量是用戶可自定義的變量,它的作用范圍僅在程序內(nèi)部。局部變量是用戶可自定義的變量,它的作用范圍僅在程序內(nèi)部。v在程序中通常用來儲(chǔ)存從表中查詢到的數(shù)據(jù),或當(dāng)作程序執(zhí)行在程序中通常用來儲(chǔ)存從表中查詢到的數(shù)據(jù),或當(dāng)作程序執(zhí)行過程中暫存變量使用。過程中暫存變量使用。v局部變量必須以局部變量必須以 開頭,而且必須先用開頭,而且必須先用DECLARED
24、ECLARE 命令說明后才命令說明后才可使用。其說明形式如下:可使用。其說明形式如下: DECLARE 變量名 變量類型,變量名變量類型v在在Transact-SQL Transact-SQL 中不能像在一般的程序語言中一樣使用中不能像在一般的程序語言中一樣使用“變變量量= =變量值變量值”來給變量賦值,必須使用來給變量賦值,必須使用SELECTSELECT 或或SET SET 命令來設(shè)定命令來設(shè)定變量的值。其語法如下:變量的值。其語法如下:SELECT 局部變量= 變量值SET 局部變量量= 變量值【例例】聲明一個(gè)長度為聲明一個(gè)長度為 8 8 個(gè)字符的變量個(gè)字符的變量idid,并賦值。,并賦
25、值。 declare id char(8)select id =10010001162全局變量全局變量v全局變量是全局變量是SQL Server SQL Server 系統(tǒng)內(nèi)部使用系統(tǒng)內(nèi)部使用的變量,其作用范圍并的變量,其作用范圍并不局限于某一程序,而是任何程序均可隨時(shí)調(diào)用。不局限于某一程序,而是任何程序均可隨時(shí)調(diào)用。v全局變量通常存儲(chǔ)一些全局變量通常存儲(chǔ)一些SQL Server SQL Server 的配置設(shè)定值和效能統(tǒng)計(jì)的配置設(shè)定值和效能統(tǒng)計(jì)數(shù)據(jù)。用戶可在程序中用全局變量來測試系統(tǒng)的設(shè)定值或數(shù)據(jù)。用戶可在程序中用全局變量來測試系統(tǒng)的設(shè)定值或Transact-SQL Transact-SQL
26、 命令執(zhí)行后的狀態(tài)值。命令執(zhí)行后的狀態(tài)值。v全局變量不是由用戶的程序定義的,它們是在服務(wù)器級(jí)定義的,全局變量不是由用戶的程序定義的,它們是在服務(wù)器級(jí)定義的,只能使用預(yù)先說明及定義的全局變量。只能使用預(yù)先說明及定義的全局變量。v引用全局變量時(shí)必須以引用全局變量時(shí)必須以“”開頭。開頭。v局部變量的名稱不能與全局變量的名稱相同,否則會(huì)在應(yīng)用中局部變量的名稱不能與全局變量的名稱相同,否則會(huì)在應(yīng)用中出錯(cuò)。出錯(cuò)。3注釋符注釋符在在Transact-SQL Transact-SQL 中可使用兩類注釋符:中可使用兩類注釋符:1 1ANSI ANSI 標(biāo)準(zhǔn)的注釋符標(biāo)準(zhǔn)的注釋符“-”用于用于單行單行注釋。注釋。2
27、 2與與C C 語言相同的程序注釋符號(hào),即語言相同的程序注釋符號(hào),即“/ /* * */ /”,/ /* * 用用于注釋文字的開頭,于注釋文字的開頭,* */ /用于注釋文字的結(jié)尾,可在程序中標(biāo)識(shí)用于注釋文字的結(jié)尾,可在程序中標(biāo)識(shí)多多行行文字為注釋。文字為注釋。 174.3.2流程控制命令流程控制命令 Transact-SQL Transact-SQL 語言使用的流程控制命令與常見的程序語言使用的流程控制命令與常見的程序設(shè)計(jì)語言類似,主要有以下幾種控制命令。設(shè)計(jì)語言類似,主要有以下幾種控制命令。 4.3.2.14.3.2.1BEGINBEGINENDEND其語法如下:其語法如下:BEGINBE
28、GIN ENDENDBEGINBEGINEND END 用來設(shè)定一個(gè)用來設(shè)定一個(gè)程序塊程序塊,將在,將在BEGINBEGINEND END 內(nèi)的所有程序視為一個(gè)單元執(zhí)行。內(nèi)的所有程序視為一個(gè)單元執(zhí)行。BEGINBEGINEND END 經(jīng)常在經(jīng)常在條件語句條件語句(如(如IFIFELSEELSE)中使用。)中使用。在在BEGINBEGINEND END 中可中可嵌套嵌套另外的另外的BEGINBEGINEND END 來定義另來定義另一程序塊。一程序塊。 184.3.2.24.3.2.2IF IF ELSE ELSE其語法如下:其語法如下:IF IF ELSE ELSE 條件表達(dá)式式條件表達(dá)式式
29、 其中其中: :v 可以是各種表達(dá)式的組合,但表達(dá)式的值可以是各種表達(dá)式的組合,但表達(dá)式的值必須是邏輯值必須是邏輯值“真真”或或“假假”。vELSE ELSE 子句是可選的,最簡單的子句是可選的,最簡單的IF IF 語句沒有語句沒有ELSE ELSE 子句部子句部分。分。vIFIFELSE ELSE 用來判斷當(dāng)某一條件成立時(shí)執(zhí)行某段程序,條用來判斷當(dāng)某一條件成立時(shí)執(zhí)行某段程序,條件不成立時(shí)執(zhí)行另一段程序。件不成立時(shí)執(zhí)行另一段程序。v如果不使用程序塊,如果不使用程序塊,IF IF 或或ELSE ELSE 只能執(zhí)行一條命令。只能執(zhí)行一條命令。vIF ELSE IF ELSE 可以進(jìn)行嵌套,在可以進(jìn)
30、行嵌套,在Transact-SQL Transact-SQL 中最多可嵌套中最多可嵌套32 32 級(jí)。級(jí)。 19【例例】從從SCSC數(shù)據(jù)表中求出學(xué)號(hào)為數(shù)據(jù)表中求出學(xué)號(hào)為S1S1同學(xué)的平均同學(xué)的平均成績,如果此平均成績大于或等于成績,如果此平均成績大于或等于6060分,則輸出分,則輸出“passpass”信息。信息。if if ( (select avgselect avg(score) (score) fromfrom sc sc wherewhere sno=S1 sno=S1 group bygroup by sno)=60 sno)=60 beginbegin printprint pa
31、ss pass endend 204.3.2.34.3.2.3CASECASECASE CASE 命令有兩種語句格式:命令有兩種語句格式:格式格式1 1:CASE CASE WHEN WHEN THEN THEN WHEN WHEN THEN THEN ELSE ELSE ENDEND該語句的執(zhí)行過程是:該語句的執(zhí)行過程是:v將將CASECASE后面表達(dá)式的值與各后面表達(dá)式的值與各WHENWHEN子句中的表達(dá)式的值進(jìn)行比較,子句中的表達(dá)式的值進(jìn)行比較,v如果二者相等,則返回如果二者相等,則返回THENTHEN后的表達(dá)式的值,然后跳出后的表達(dá)式的值,然后跳出CASECASE語語句,否則返回句,否
32、則返回ELSEELSE子句中的表達(dá)式的值。子句中的表達(dá)式的值。vELSEELSE子句是可選項(xiàng)。當(dāng)子句是可選項(xiàng)。當(dāng)CASECASE語句中不包含語句中不包含ELSEELSE子句時(shí),如果所子句時(shí),如果所有比較失敗時(shí),有比較失敗時(shí),CASECASE語句將返回語句將返回NULLNULL。 21【例例】從學(xué)生表從學(xué)生表S S中,選取中,選取SNOSNO,SEXSEX,如果,如果SEXSEX為為“男男”則輸出則輸出“M M”,如果為,如果為“女女”輸出輸出“F F”。SELECT SNO,SELECT SNO, SEX= SEX= CASECASE sex sex WHEN WHEN 男男 THEN M T
33、HEN M WHEN WHEN 女女 THEN F THEN F END ENDFROM SFROM S 22格式格式2 2:CASECASEWHEN WHEN THEN THEN WHEN WHEN THEN THEN ELSE ELSE ENDEND該語句的執(zhí)行過程是:該語句的執(zhí)行過程是:v首先測試首先測試WHENWHEN后的表達(dá)式的值后的表達(dá)式的值v如果其值為真,則返回如果其值為真,則返回THENTHEN后面的表達(dá)式的值,否后面的表達(dá)式的值,否則測試下一個(gè)則測試下一個(gè)WHENWHEN子句中的表達(dá)式的值子句中的表達(dá)式的值v如果所有如果所有WHENWHEN子句后的表達(dá)式的值都為假,則返回子句
34、后的表達(dá)式的值都為假,則返回ELSEELSE后的表達(dá)式的值后的表達(dá)式的值v如果在如果在CASECASE語句中沒有語句中沒有ELSEELSE子句,則子句,則CASECASE表達(dá)式返表達(dá)式返回回NULLNULL。 23注:注:CASE CASE 命令可以嵌套到命令可以嵌套到SQL SQL 命令中。命令中?!纠繌膹腟CSC表中查詢所有同學(xué)選課成績情況,凡成績?yōu)楸碇胁樵兯型瑢W(xué)選課成績情況,凡成績?yōu)榭照咻敵隹照咻敵觥拔纯嘉纯肌?、小于、小?060分輸出分輸出“不及格不及格”、6060分至分至7070分輸出分輸出“及格及格”、7070分至分至9090分輸出分輸出“良好良好”、大于或、大于或等于等于9
35、090分時(shí)輸出分時(shí)輸出“優(yōu)秀優(yōu)秀”。SELECT SNO,CNO, SELECT SNO,CNO, SCORE= SCORE= CASE CASE WHEN SCORE IS NULL THEN WHEN SCORE IS NULL THEN 未考未考 WHEN SCORE60 THEN WHEN SCORE=60 AND SCORE=60 AND SCORE=70 AND SCORE=70 AND SCORE=90 THEN WHEN SCORE=90 THEN 優(yōu)秀優(yōu)秀 END ENDFROM SCFROM SC 244.3.2.44.3.2.4WHILEWHILECONTINUECONT
36、INUEBREAKBREAK其語法如下:其語法如下:WHILE WHILE BEGINBEGIN BREAKBREAKCONTINUECONTINUE 命令行或程序塊命令行或程序塊 ENDENDWHILE WHILE 命令在設(shè)定的條件成立時(shí),會(huì)重復(fù)執(zhí)行命令行命令在設(shè)定的條件成立時(shí),會(huì)重復(fù)執(zhí)行命令行或程序塊。或程序塊。CONTINUE CONTINUE 命令可以讓程序跳過命令可以讓程序跳過CONTINUE CONTINUE 命令之后的命令之后的語句,回到語句,回到WHILE WHILE 循環(huán)的第一行,繼續(xù)進(jìn)行下一次循環(huán)。循環(huán)的第一行,繼續(xù)進(jìn)行下一次循環(huán)。BREAK BREAK 命令則讓程序完全跳
37、出循環(huán),結(jié)束命令則讓程序完全跳出循環(huán),結(jié)束WHILE WHILE 命令命令的執(zhí)行。的執(zhí)行。WHILE WHILE 語句也可以嵌套。語句也可以嵌套。 25如:如:以下程序計(jì)算以下程序計(jì)算1 1100100之間所有能被之間所有能被3 3整除的數(shù)的個(gè)整除的數(shù)的個(gè)數(shù)及總和。數(shù)及總和。DECLARE S SMALLINT,I SMALLINT,NUMS SMALLINT DECLARE S SMALLINT,I SMALLINT,NUMS SMALLINT SET S=0SET S=0SET I=1SET I=1SET NUMS=0SET NUMS=0WHILEWHILE (I=100) (I=100)
38、 BEGIN BEGIN IF (I%3=0) IF (I%3=0) BEGINBEGIN SET S=S+I SET S=S+I SET NUMS=NUMS+1 SET NUMS=NUMS+1 ENDEND SET I=I+1 SET I=I+1 END ENDPRINT SPRINT SPRINT NUMSPRINT NUMS 264.3.2.54.3.2.5WAITFORWAITFOR其語法如下:其語法如下:WAITFOR DELAY WAITFOR DELAY | TIME | TIME | ERROREXIT | PROCESSEXIT | MIRROREXIT| ERROREXIT
39、 | PROCESSEXIT | MIRROREXITWAITFOR WAITFOR 命令用來暫時(shí)停止程序執(zhí)行,直到所設(shè)定的命令用來暫時(shí)停止程序執(zhí)行,直到所設(shè)定的等待時(shí)間已過或所設(shè)定的時(shí)間已到才繼續(xù)往下執(zhí)行。等待時(shí)間已過或所設(shè)定的時(shí)間已到才繼續(xù)往下執(zhí)行。其中其中時(shí)間時(shí)間必須為必須為DATETIMEDATETIME 類型的數(shù)據(jù),但不能包類型的數(shù)據(jù),但不能包括日期。括日期。各關(guān)鍵字含義如下:各關(guān)鍵字含義如下:1 1DELAYDELAY:用來設(shè)定等待的時(shí)間,最多可達(dá)用來設(shè)定等待的時(shí)間,最多可達(dá)24 24 小時(shí)小時(shí)2 2TIMETIME:用來設(shè)定等待結(jié)束的時(shí)間點(diǎn)用來設(shè)定等待結(jié)束的時(shí)間點(diǎn)3 3ERROR
40、EXITERROREXIT:直到處理非正常中斷直到處理非正常中斷4 4PROCESSEXITPROCESSEXIT:直到處理正?;蚍钦V袛嘀钡教幚碚;蚍钦V袛? 5MIRROREXIMIRROREXI: 直到鏡像設(shè)備失敗直到鏡像設(shè)備失敗 27【例例】等待等待1 1 小時(shí)小時(shí)2 2 分零分零3 3 秒后才執(zhí)行秒后才執(zhí)行SELECT SELECT 語句。語句。waitfor waitfor delaydelay 01:02:0301:02:03select select * * from employee from employee 284.3.2.64.3.2.6GOTOGOTO語法如下:
41、語法如下:GOTO GOTO 標(biāo)識(shí)符標(biāo)識(shí)符GOTO GOTO 命令用來改變程序執(zhí)行的流程,使程序命令用來改變程序執(zhí)行的流程,使程序跳到標(biāo)有標(biāo)識(shí)符的指定的程序行再繼續(xù)往下執(zhí)行。跳到標(biāo)有標(biāo)識(shí)符的指定的程序行再繼續(xù)往下執(zhí)行。作為跳轉(zhuǎn)目標(biāo)的標(biāo)識(shí)符可為數(shù)字與字符的組合。作為跳轉(zhuǎn)目標(biāo)的標(biāo)識(shí)符可為數(shù)字與字符的組合。但必須以但必須以“:”結(jié)尾。結(jié)尾。在在GOTO GOTO 命令行,標(biāo)識(shí)符后不必跟命令行,標(biāo)識(shí)符后不必跟“:” 29如:如:求求1 12 23 31010的總和。的總和。DECLARE S SMALLINT,I SMALLINTDECLARE S SMALLINT,I SMALLINTSET I=1
42、SET I=1SET S=0SET S=0BEG:BEG:IF (I=10)IF (I=表達(dá)式的最小整數(shù)FLOOR 返回=表達(dá)式的最小整數(shù)ROUND 取整數(shù),小數(shù)的第一位上四舍五入符號(hào)函數(shù)ABS 返回表達(dá)式的絕對(duì)值SIGN 測試參數(shù)的正負(fù)號(hào),返回0、1或-1,其它函數(shù)PI 返回值為,即3.1415926535897936RAND 求0-1間的隨機(jī)浮點(diǎn)數(shù)表表4.1 Transact-SQL 4.1 Transact-SQL 的算術(shù)函數(shù)的算術(shù)函數(shù) 444.3.4.34.3.4.3字符串函數(shù)字符串函數(shù)字符串函數(shù)對(duì)字符串函數(shù)對(duì)二進(jìn)制數(shù)據(jù)二進(jìn)制數(shù)據(jù)、字符串字符串和和表達(dá)式表達(dá)式執(zhí)行不同的執(zhí)行不同的運(yùn)算。
43、運(yùn)算。此類函數(shù)作用于此類函數(shù)作用于CHARCHAR、VARCHARVARCHAR、BINARYBINARY 和和VARBINARYVARBINARY 數(shù)據(jù)類型以及可以隱式轉(zhuǎn)換為數(shù)據(jù)類型以及可以隱式轉(zhuǎn)換為CHAR CHAR 或或VARCHARVARCHAR的數(shù)據(jù)類的數(shù)據(jù)類型。型??梢栽诳梢栽赟ELECT SELECT 語句的語句的SELECT SELECT 和和WHERE WHERE 子句以及表達(dá)子句以及表達(dá)式中使用字符串函數(shù)。式中使用字符串函數(shù)。常用的字符串函數(shù)有:常用的字符串函數(shù)有:1 1字符轉(zhuǎn)換函數(shù)字符轉(zhuǎn)換函數(shù)(1 1)ASCIIASCII()()q ASCII()函數(shù)返回字符表達(dá)式最左端
44、字符的ASCII 碼值。v在在ASCII ASCII 函數(shù)中,純數(shù)字的字符串可不用函數(shù)中,純數(shù)字的字符串可不用“”括起來,但括起來,但含其它字符的字符串必須用含其它字符的字符串必須用“”括起來使用,否則會(huì)出錯(cuò)。括起來使用,否則會(huì)出錯(cuò)。 45(2 2)CHARCHAR()()q CHAR()函數(shù)用于將ASCII 碼轉(zhuǎn)換為字符。q如果沒有輸入0 255 之間的ASCII 碼值,CHAR()函數(shù)會(huì)返回一個(gè)NULL 值。(3 3)LOWERLOWER()()q LOWER()函數(shù)把字符串全部轉(zhuǎn)換為小寫。(4 4)UPPERUPPER()()q UPPER()函數(shù)把字符串全部轉(zhuǎn)換為大寫。(5 5)STR
45、STR()()q STR()函數(shù)把數(shù)值型數(shù)據(jù)轉(zhuǎn)換為字符型數(shù)據(jù)。其語法如下:其語法如下:STR( length )q自變量length 和decimal 必須是非負(fù)值。qlength 指定返回的字符串的長度。qdecimal 指定返回的小數(shù)位數(shù)。q如果沒有指定長度,缺省的length 值為10 ,decimal 缺省值為0 。q小數(shù)位數(shù)大于decimal 值時(shí),STR()函數(shù)將其下一位四舍五入。q指定長度應(yīng)大于或等于數(shù)字的符號(hào)位數(shù)+小數(shù)點(diǎn)前的位數(shù)+小數(shù)點(diǎn)位數(shù)+小數(shù)點(diǎn)后的位數(shù)。q如果小數(shù)點(diǎn)前的位數(shù)超過了指定的長度,則返回指定長度的*。462 2去空格函數(shù)去空格函數(shù)(1 1)LTRIMLTRIM()
46、()q LTRIM()函數(shù)把字符串頭部的空格去掉。(2 2)RTRIMRTRIM()()q RTRIM()函數(shù)把字符串尾部的空格去掉。v在許多情況下,往往需要得到頭部和尾部都沒有空在許多情況下,往往需要得到頭部和尾部都沒有空格字符的字符串,這時(shí)可將上兩個(gè)函數(shù)嵌套使用。格字符的字符串,這時(shí)可將上兩個(gè)函數(shù)嵌套使用。 473 3取子串函數(shù)取子串函數(shù)(1 1)LEFTLEFT()()q LEFT()函數(shù)返回部分字符串。其語法如下:LEFTLEFT(,)q LEFT()函數(shù)返回的子串是從字符串最左邊起到第integer_expression 個(gè)字符的部分。q若integer_expression 為負(fù)值
47、,則返回NULL 值。(2 2)RIGHTRIGHT()()q RIGHT()函數(shù)返回部分字符串。其語法如下:RIGHTRIGHT(,)q RIGHT()函數(shù)返回的子串是從字符串右邊第integer_expression 個(gè)字符起到最后一個(gè)字符的部分。q若integer_expression 為負(fù)值,則返回NULL 值。(3 3)SUBSTRINGSUBSTRINGqSUBSTRING()函數(shù)返回部分字符串。其語法如下:SUBSTRING ( , SUBSTRING ( , length)length)q SUBSTRING()函數(shù)返回的子串是從字符串左邊第starting_ position
48、 個(gè)字符起length個(gè)字符的部分。q其中表達(dá)式可以是字符串或二進(jìn)制串或含字段名的表達(dá)式。qSUBSTRING()函數(shù)不能用于TEXT 和IMAGE 數(shù)據(jù)類型。 484 4字符串比較函數(shù)字符串比較函數(shù)(1 1)CHARINDEXCHARINDEX()()q CHARINDEX()函數(shù)返回字符串中某個(gè)指定的子串出現(xiàn)的開始位置。其語法如下:CHARINDEX CHARINDEX ( ,)q 其中,substring _expression 是所要查找的字符表達(dá)式,qexpression 可為字符串也可為列名表達(dá)式。q如果沒有發(fā)現(xiàn)子串,則返回0 值。q此函數(shù)不能用于TEXT 和IMAGE 數(shù)據(jù)類型。
49、(2 2)PATINDEXPATINDEX()()q PATINDEX()函數(shù)返回字符串中某個(gè)指定的子串出現(xiàn)的開始位置。其語法如下:PATINDEX PATINDEX ( ,column_ name)q 其中子串表達(dá)式前后必須有百分號(hào)“%” ,否則返回值為0。q與CHARINDEX()函數(shù)不同的是,PATINDEX()函數(shù)的子串中可以使用通配符,且此函數(shù)可用于CHAR、VARCHAR和TEXT 數(shù)據(jù)類型。 49(3 3)SOUNDEXSOUNDEX()()q SOUNDEX()函數(shù)返回一個(gè)四位字符碼。其語法如下:SOUNDEX SOUNDEX ()q SOUNDEX()函數(shù)將character
50、 _expression 轉(zhuǎn)換為4 個(gè)字符的聲音碼。q其中第一個(gè)碼為原字符串的第一個(gè)字符,第二到第四個(gè)字符則為數(shù)字,是該字符串的聲音字母所對(duì)應(yīng)的數(shù)字,但是忽略了除首字母外的串中的所有元音字母。qSOUNDEX()函數(shù)可用來查找聲音相似的字符串。q但SOUNDEX()函數(shù)對(duì)數(shù)字和漢字均只返回0 值。50(4 4)DIFFERENCEDIFFERENCE()()q DIFFERENCE()函數(shù)返回由SOUNDEX 函數(shù)返回的兩個(gè)字符表達(dá)式的值的差異。其語法如下:DIFFERENCE DIFFERENCE (,)q 值的差異是用0、1、2、3、4 來表示的,含義如下:0 兩個(gè)SOUNDEX()函數(shù)返
51、回值的第一個(gè)字符不同1 兩個(gè)SOUNDEX()函數(shù)返回值的第一個(gè)字符相同2 兩個(gè)SOUNDEX()函數(shù)返回值的第一、二個(gè)字符相同3 兩個(gè)SOUNDEX()函數(shù)返回值的第一、二、三個(gè)字符相同4 兩個(gè)SOUNDEX()函數(shù)返回值完全相同 515 5字符串操作函數(shù)字符串操作函數(shù)(1 1)QUOTENAMEQUOTENAME()()q QUOTENAME()函數(shù)返回被特定字符括起來的字符串。其語法如下:QUOTENAME QUOTENAME ( ,quote_ quote_ charactercharacter)q 其中,quote_ character 標(biāo)明括字符串所用的字符,如“”、“(”、“”等
52、,缺省值為“ ”。(2 2)REPLICATEREPLICATE()()q REPLICATE()函數(shù)返回一個(gè)重復(fù)character_expression 指定次數(shù)的字符串。其語法如下:REPLICATE REPLICATE (character_expressioncharacter_expression,integer_expressioninteger_expression)q 如果integer_expression 值為負(fù)值,則REPLICATE 函數(shù)返回NULL 串。(3 3)REVERSEREVERSE()()q REVERSE()函數(shù)將指定的字符串的字符排列順序顛倒。其語法如下
53、:REVERSE REVERSE ()q 其中,character_expression 可以是字符串常數(shù)或一個(gè)列的值。 52(4 4)REPLACEREPLACE()()qREPLACE()函數(shù)返回被替換了指定子串的字符串。其語法如下:REPLACE REPLACE (,)qREPLACE()函數(shù)用string_expression3 替換在string_expression1 中的子串string_expression2。(5 5)SPACESPACE()()qSPACE()函數(shù)返回一個(gè)有指定長度的空白字符串。其語法如下:SPACE SPACE ()q如果integer_expressio
54、n 值為負(fù)值,則SPACE 函數(shù)返回NULL 串。 53(6 6)STUFFSTUFF()()q STUFF()函數(shù)用另一子串替換字符串指定位置長度的子串。其語法如下:STUFFSTUFF(,start_ position,)q 如果起始位置為負(fù)或長度值為負(fù),或者起始位置大于character_expression1 的長度,則STUFF()函數(shù)返回NULL 值。q如果length 長度大于character_expression1 的長度,則character_expression1 只保留首字符。 544.3.4.44.3.4.4數(shù)據(jù)類型轉(zhuǎn)換函數(shù)數(shù)據(jù)類型轉(zhuǎn)換函數(shù)在一般情況下,在一般情況下,
55、SQL Server SQL Server 會(huì)自動(dòng)完成數(shù)據(jù)類型的轉(zhuǎn)會(huì)自動(dòng)完成數(shù)據(jù)類型的轉(zhuǎn)換。換。例如,例如,可以直接將字符數(shù)據(jù)類型或表達(dá)式與可以直接將字符數(shù)據(jù)類型或表達(dá)式與DATATIME DATATIME 數(shù)據(jù)類型或表達(dá)式比較;當(dāng)表達(dá)式中用了數(shù)據(jù)類型或表達(dá)式比較;當(dāng)表達(dá)式中用了INTEGERINTEGER、SMALLINTSMALLINT或或TINYINT TINYINT 時(shí),時(shí),SQL Server SQL Server 也可將也可將INTEGER INTEGER 數(shù)數(shù)據(jù)類型或表達(dá)式轉(zhuǎn)換為據(jù)類型或表達(dá)式轉(zhuǎn)換為SMALLINTSMALLINT數(shù)據(jù)類型或表達(dá)式,這數(shù)據(jù)類型或表達(dá)式,這稱為稱為隱
56、式轉(zhuǎn)換隱式轉(zhuǎn)換。如果不能確定如果不能確定SQL Server SQL Server 是否能完成隱式轉(zhuǎn)換或者使是否能完成隱式轉(zhuǎn)換或者使用了不能隱式轉(zhuǎn)換的其它數(shù)據(jù)類型,就需要使用數(shù)據(jù)類用了不能隱式轉(zhuǎn)換的其它數(shù)據(jù)類型,就需要使用數(shù)據(jù)類型轉(zhuǎn)換函數(shù)做顯式轉(zhuǎn)換了。型轉(zhuǎn)換函數(shù)做顯式轉(zhuǎn)換了。此類函數(shù)有兩個(gè):此類函數(shù)有兩個(gè):1 1CASTCAST()()q CAST()函數(shù)語法如下:CAST CAST ( AS length AS length ) 552 2CONVERTCONVERT()()q CONVERT 函數(shù)語法如下:CONVERT CONVERT ( length length , ,stylest
57、yle)q data_ type 為SQL Server 系統(tǒng)定義的數(shù)據(jù)類型,用戶自定義的數(shù)據(jù)類型不能在此使用。qlength 用于指定數(shù)據(jù)的長度缺省值為30。q把CHAR 或VARCHAR 類型轉(zhuǎn)換為諸如INT 或SAMLLINT 這樣的INTEGER 類型,結(jié)果必須是帶正號(hào)(+)或負(fù)號(hào)(-)的數(shù)值。qTEXT 類型到CHAR 或VARCHAR 類型的轉(zhuǎn)換最多為8000 個(gè)字符,即CHAR 或VARCHAR數(shù)據(jù)類型是最大長度。qIMAGE 類型存儲(chǔ)的數(shù)據(jù)轉(zhuǎn)換到BINARY 或VARBINARY 類型,最多為8000 個(gè)字符。q把整數(shù)值轉(zhuǎn)換為MONEY 或SMALLMONEY 類型,按定義的國
58、家的貨幣單位來處理,如人民幣、美元、英鎊等。qBIT 類型的轉(zhuǎn)換把非零值轉(zhuǎn)換為1,并仍以BIT 類型存儲(chǔ)。q試圖轉(zhuǎn)換到不同長度的數(shù)據(jù)類型,會(huì)截短轉(zhuǎn)換值并在轉(zhuǎn)換值后顯示“+”,以標(biāo)識(shí)發(fā)生了這種截?cái)唷用CONVERT()函數(shù)的style 選項(xiàng)能以不同的格式顯示日期和時(shí)間。qstyle 是將DATATIME 和SMALLDATETIME 數(shù)據(jù)轉(zhuǎn)換為字符串時(shí)所選用的由SQL Server 系統(tǒng)提供的轉(zhuǎn)換樣式編號(hào),不同的樣式編號(hào)有不同的輸出格式,如表4.2所示。 56表表4.2 DATATIME 4.2 DATATIME 和和SMALLDATETIME SMALLDATETIME 類型數(shù)據(jù)的轉(zhuǎn)換格式類
59、型數(shù)據(jù)的轉(zhuǎn)換格式style1 style2 style1 style2 標(biāo)準(zhǔn)標(biāo)準(zhǔn) 輸出格式輸出格式 0 或100 缺省 mon dd yyyy hh:mi Am/Pm1 101 USA mm/dd/yy2 102 ANSI yy.mm.dd3 103 UK/French dd/mm/yy4 104 German dd.mm.yy5 105 Italian dd-mm-yy6 106 dd mon yy7 107 mon dd yy8 108 hh:mi:ss9 109 mon dd yyyy hh:mi:sss Am/Pm10 110 USA mm=dd-yy11 111 Japan yy/m
60、m/dd12 112 ISO yymmdd13 113 Europe dd mon yyyy hh:mi:ss:mmm(24h)14 114 hh:mi:ss:mmm(24h)20 120 ODBC1 yyyy-mm-dd hh:mi:ss(24h)21 121 ODBC2 yyyy-mm-dd hh:mi:ss:mmm(24h)574.3.4.54.3.4.5日期函數(shù)日期函數(shù)日期函數(shù)用來操作日期函數(shù)用來操作DATETIME DATETIME 和和SMALLDATETIME SMALLDATETIME 類型的類型的數(shù)據(jù),執(zhí)行算術(shù)運(yùn)算。數(shù)據(jù),執(zhí)行算術(shù)運(yùn)算。與其它函數(shù)一樣,可以在與其它函數(shù)一樣,可
61、以在SELECT SELECT 語句的語句的SELECT SELECT 和和WHERE WHERE 子句以及表達(dá)式中使用日期函數(shù)。子句以及表達(dá)式中使用日期函數(shù)。1 1DAYDAY()vDAYDAY()函數(shù)返回()函數(shù)返回date_expression date_expression 中的日期值。中的日期值。2 2MONTHMONTH()vMONTHMONTH()函數(shù)返回()函數(shù)返回date_expression date_expression 中的月份值。中的月份值。v與與DAYDAY()函數(shù)不同的是,()函數(shù)不同的是,MONTHMONTH()函數(shù)的參數(shù)為整數(shù)時(shí),一()函數(shù)的參數(shù)為整數(shù)時(shí),一律
62、返回整數(shù)值律返回整數(shù)值1 1,即,即SQL Server SQL Server 認(rèn)為其是認(rèn)為其是1900 1900 年年1 1 月。月。3 3YEARYEAR()vYEARYEAR()函數(shù)返回()函數(shù)返回date_expression date_expression 中的年份值。中的年份值。在使用日期函數(shù)時(shí),其日期值應(yīng)在在使用日期函數(shù)時(shí),其日期值應(yīng)在1753 1753 年到年到9999 9999 年年之間,這是之間,這是SQL Server SQL Server 系統(tǒng)所能識(shí)別的日期范圍,否則系統(tǒng)所能識(shí)別的日期范圍,否則會(huì)出現(xiàn)錯(cuò)誤。會(huì)出現(xiàn)錯(cuò)誤。 584 4DATEADDDATEADD()()DA
63、TEADDDATEADD()函數(shù)語法如下:()函數(shù)語法如下:DATEADD( )vDATEADDDATEADD()函數(shù)返回指定日期()函數(shù)返回指定日期date date 加上指定的額加上指定的額外日期間隔外日期間隔number number 產(chǎn)生的新日期。產(chǎn)生的新日期。v參數(shù)參數(shù)“datepartdatepart”在日期函數(shù)中經(jīng)常被使用,它用來在日期函數(shù)中經(jīng)常被使用,它用來指定構(gòu)成日期類型數(shù)據(jù)的各組件,如年、季、月、日、指定構(gòu)成日期類型數(shù)據(jù)的各組件,如年、季、月、日、星期等。其取值如表星期等。其取值如表4.34.3所示。所示。 59表表4.3 4.3 日期函數(shù)中日期函數(shù)中datepart da
64、tepart 參數(shù)的取值參數(shù)的取值datepart datepart 縮寫縮寫 取值取值year yy,yyyy 1753 9999quarter qq,q 1 4month mm,m 1 12day of year dy,y 1 366day dd,d 1 31week wk,ww 1 54weekday dw 1 7hour hh 0 23minute mi,n 0 59second ss,s 0 59millisecond ms 0 999605 5DATEDIFFDATEDIFF()()DATEDIFFDATEDIFF()函數(shù)語法如下:()函數(shù)語法如下:DATEDIFF(,)vDATE
65、DIFFDATEDIFF()函數(shù)返回兩個(gè)指定日期在()函數(shù)返回兩個(gè)指定日期在datepart datepart 方方面的不同之處,即面的不同之處,即date2 date2 超過超過date1date1的差距值,其結(jié)果的差距值,其結(jié)果值是一個(gè)帶有正負(fù)號(hào)的整數(shù)值針。值是一個(gè)帶有正負(fù)號(hào)的整數(shù)值針。v對(duì)不同的對(duì)不同的datepartdatepart,DATEDIFFDATEDIFF()函數(shù)所允許的最()函數(shù)所允許的最大差距值不一樣,如:大差距值不一樣,如:qdatepart 為second 時(shí)DATEDIFF 函數(shù)所允許的最大差距值為68 年;qdatepart 為millisecond 時(shí),DATE
66、DIFF() 函數(shù)所允許的最大差距值為24 天20 小時(shí)30 分23 秒647 毫秒。 616 6DATENAMEDATENAME()()DATENAMEDATENAME()函數(shù)語法如下:()函數(shù)語法如下:DATENAME(,)vDATENAMEDATENAME()函數(shù)以字符串的形式返回日期的指定()函數(shù)以字符串的形式返回日期的指定部分此部分,由部分此部分,由datepart datepart 來指定。來指定。7.DATEPART7.DATEPART()()DATEPARTDATEPART()函數(shù)語法如下:()函數(shù)語法如下:DATEPART(,)vDATEPARTDATEPART()函數(shù)以整數(shù)值的形式返回日期的指定()函數(shù)以整數(shù)值的形式返回日期的指定部分,此部分由部分,此部分由datepart datepart 來指定。來指定。vDATEPARTDATEPART(dddd,datedate)等同于)等同于DAYDAY(datedate)vDATEPARTDATEPART(mmmm,datedate)等同于)等同于MONTHMONTH(datedate)vDATEPARTDATEPART
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 6.煤礦安全生產(chǎn)科普知識(shí)競賽題含答案
- 2.煤礦爆破工技能鑒定試題含答案
- 3.爆破工培訓(xùn)考試試題含答案
- 2.煤礦安全監(jiān)察人員模擬考試題庫試卷含答案
- 3.金屬非金屬礦山安全管理人員(地下礦山)安全生產(chǎn)模擬考試題庫試卷含答案
- 4.煤礦特種作業(yè)人員井下電鉗工模擬考試題庫試卷含答案
- 1 煤礦安全生產(chǎn)及管理知識(shí)測試題庫及答案
- 2 各種煤礦安全考試試題含答案
- 1 煤礦安全檢查考試題
- 1 井下放炮員練習(xí)題含答案
- 2煤礦安全監(jiān)測工種技術(shù)比武題庫含解析
- 1 礦山應(yīng)急救援安全知識(shí)競賽試題
- 1 礦井泵工考試練習(xí)題含答案
- 2煤礦爆破工考試復(fù)習(xí)題含答案
- 1 各種煤礦安全考試試題含答案