版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、第7章 SQL Server 2005 數(shù)據(jù)庫管理系統(tǒng),7.1 SQL Server 2005系統(tǒng)概述,本節(jié)要點 本章主要介紹:SQL Server 2005的概況、特性、新增強功能;SQL Server 2005安裝的軟硬件需求及安裝過程;SQL Server 2005的主要組件及其初步使用;SQL的編程等。,本節(jié)目錄,7.1.1 SQL Server 2005系統(tǒng)簡介 7.1.2 安裝 SQL Se
2、rver 2005 7.1.3 SQL Server 2005的主要組件及其初步應(yīng)用,7.1.1 SQL Server 2005系統(tǒng)簡介,1 概況 2 特性,返回本節(jié)首頁,1 概況,1、什么是 SQL Server 2005 SQL Server 2005是一個全面的數(shù)據(jù)庫平臺,使用集成的商業(yè)智能(Business Intelligence,BI)工具,提供了企業(yè)級的數(shù)據(jù)管理。SQL Server 2005數(shù)據(jù)庫引擎為關(guān)系型數(shù)
3、據(jù)和結(jié)構(gòu)化數(shù)據(jù)提供了更安全可靠的存儲功能,使您可以構(gòu)建和管理用于業(yè)務(wù)的高可用和高性能的數(shù)據(jù)應(yīng)用程序。,2、SQL Server 2005 產(chǎn)品組件功能概述 SQL Server 2005 是用于大規(guī)模聯(lián)機事務(wù)處理(OLTP)、數(shù)據(jù)倉庫和電子商務(wù)應(yīng)用的數(shù)據(jù)庫和數(shù)據(jù)分析平臺。其組成部分及功能特點表2-1。,1 概況,3、SQL Server 2005有六個版本: 1)SQL Server學(xué)習(xí)版或稱精簡版(即SQL Ser
4、ver 2005 Express Edition) 2)SQL Server工作組版(即SQL Server 2005 Workgroup Edition) 它是具備可靠的,強健的和易于管理的性能的入門級數(shù)據(jù)庫的理想選擇。 3)SQL Server開發(fā)版(即SQL Server 2005 Developer Edition,功能同SQL Server企業(yè)版) 它是獨立軟件供應(yīng)商,顧問,系統(tǒng)集成商,解決方案供應(yīng)商和開發(fā)商的理想選擇。
5、 4)SQL Server標(biāo)準(zhǔn)版(即SQL Server 2005 Standard Edition) 它是需要完整數(shù)據(jù)管理和分析平臺的中小型企業(yè)的理想選擇。 5)SQL Server企業(yè)版(即SQL Server 2005 Enterprise Edition) 它是大型企業(yè)和最復(fù)雜的數(shù)據(jù)需求的理想選擇。 6)SQL Server移動版(即SQL Server 2005 Mobile Edition),1 概況,SQL Se
6、rver 2005每種許可證方式的零售價格,1 概況,7.1.2 安裝 SQL Server 2005,1 SQL Server 2005的安裝版本的確定 2 SQL Server 2005 的安裝組件的確定3 SQL Server 2005 系統(tǒng)要求 4 準(zhǔn)備安裝 SQL Server 2005 5 安裝SQL Server 2005 6 如何驗證 SQL Server 2005 服務(wù)的安裝成功7 升級到 SQL Serv
7、er 2005 8 如何卸載 SQL Server 2005 的現(xiàn)有實例,7.1.2 安裝 SQL Server 2005,SQL Server 2005安裝向?qū)Щ贛icrosoft Windows安裝程序,并且為所有SQL Server 2005組件的安裝提供單一的功能樹,能完成如下組件的安裝任務(wù):SQL Server Database EngineAnalysis ServicesReporting ServicesNo
8、tification ServicesIntegration Services管理工具、文檔和示例等。,1 SQL Server 2005的安裝版本的確定,根據(jù)應(yīng)用程序的需要,安裝要求可能有很大不同。SQL Server 2005的不同版本能夠滿足企業(yè)和個人獨特的性能、運行時以及價格要求。需要安裝哪些SQL Server 2005組件也要根據(jù)企業(yè)或個人的需求而定。,2 SQL Server 2005 的安裝組件的確定,使用SQL S
9、erver安裝向?qū)У摹肮δ苓x擇”頁選擇SQL Server 2005安裝中要包括的組件。根據(jù)下面諸表的說明確定滿足需要的功能集。,表7-9 SQL Server 2005服務(wù)器組件及其功能,表7-10 SQL Server 2005管理工具及其功能,4 SQL Server 2005 系統(tǒng)要求,SQL Server 2005(32位)系統(tǒng)最低要求見表7-11:,安裝SQL Server 2005,為了成功安裝SQL Server,在安裝
10、計算機上需要下列軟件組件:1).NET Framework 2.0;2)SQL Server 本機客戶端;3)SQL Server 2005安裝程序支持文件。,安裝SQL Server 2005,,,圖7-1 SQL Server 2005安裝盤目錄 圖7-2 SQL Server 2005安裝開始屏幕,安裝SQL Server 2005,返回本節(jié)首頁,安裝將至少經(jīng)歷22個步驟,詳細(xì)過程省略,希望能
11、親自安裝體驗。下面是18步時的情況。 18、在“準(zhǔn)備安裝”頁上(如圖7-11),查看要安裝的 SQL Server 功能和組件的摘要。若要繼續(xù)安裝,請單擊“安裝”。,,,圖7-11 準(zhǔn)備安裝 圖7-12 安裝進(jìn)行中,安裝SQL Server 2005,19、在“安裝進(jìn)度”頁上(如圖7-12),可以在安裝過程中監(jiān)視安裝進(jìn)度。若要在安裝期間查看組件的日志文件,請在“安裝進(jìn)度
12、”頁上單擊產(chǎn)品或狀態(tài)名稱。 20、在“完成Microsoft SQL Server安裝向?qū)А表撋?,可以通過單擊此頁上提供的鏈接查看安裝摘要日志。若要退出SQL Server安裝向?qū)В垎螕簟巴瓿伞薄?21、如果得到重新啟動計算機的指示,請立即進(jìn)行此操作。完成安裝后,閱讀來自安裝程序的消息是很重要的。如果未能重新啟動計算機,可能會導(dǎo)致以后運行安裝程序失敗。 22、后續(xù)步驟,安裝程序完成 SQL Server 2005 的
13、安裝后,可使用圖形工具和命令提示實用工具進(jìn)一步配置 SQL Server。為了減少系統(tǒng)的可攻擊外圍應(yīng)用,SQL Server 2005 有選擇地安裝并激活密鑰服務(wù)和功能。在新安裝軟件的默認(rèn)配置中,許多功能被禁用。,7.1.3 SQL Server 2005的主要組件及其初步應(yīng)用,1 認(rèn)識安裝后的SQL Server 2005 2 SQL Server Management Studio(SQL Server 集成管理器,SSMS)
14、3 SQLCMD 實用工具教程 4 SQL Server配置管理器5 SQL Server 2005外圍應(yīng)用配置器 6 SQL Server Profiler(事件探查器) 7 數(shù)據(jù)庫引擎優(yōu)化顧問8 SQL Server聯(lián)機叢書,1 認(rèn)識安裝后的SQL Server 2005,,圖7-13 安裝后SQL Server 2005程序菜單情況,SQL Server 2005默認(rèn)安裝在C盤的“\Program Files”目錄下,
15、其目錄布局類似如下圖7-14所示:,圖7-14 SQL Server 2005安裝后目錄文件布局情況 SQL Server 2005包括一組完整的圖形工具和命令行實用工具,有助于用戶、程序員和管理員提高工作效率。下面就SQL Server 2005主要組件及其使用作一介紹。,1 認(rèn)識安裝后的SQL Server 2005,2 SQL Server 集成管理器,SQL Server Management Studio(SQL Serv
16、er 集成管理器,SSMS),SQL Server Management Studio的基本學(xué)習(xí)使用請參見如下WORD文檔:,3 SQLCMD 實用工具教程,您可以使用sqlcmd實用工具(Microsoft Win32命令提示實用工具)來運行特殊的 T-SQL 語句和腳本。若要以交互方式使用sqlcmd,或要生成可使用sqlcmd來運行的腳本文件,則需要了解T-SQL。通常以下列方式使用sqlcmd實用工具。 在sqlcmd環(huán)境中
17、,以交互的方式輸入T-SQL語句,輸入方式與在命令提示符下輸入的方式相同。命令提示符窗口中會顯示結(jié)果(選擇其它方式除外)。,3 SQLCMD 實用工具教程,SQLCMD運行界面圖,4 SQL Server配置管理器,SQL Server 配置管理器管理與 SQL Server 2005 相關(guān)的服務(wù)。盡管其中許多任務(wù)可以使用 Windows 服務(wù)對話框來完成,但值得注意的是 SQL Server 配置管理器還可以對其管理的服務(wù)執(zhí)行更多的
18、操作(例如,在服務(wù)帳戶更改后應(yīng)用正確的權(quán)限)。使用 SQL Server 配置管理器可以完成下列服務(wù)任務(wù): 1)啟動、停止和暫停服務(wù);2)將服務(wù)配置為自動啟動或手動啟動,禁用服務(wù),或者更改其它服務(wù)設(shè)置;3)更改 SQL Server 服務(wù)所使用的帳戶的密碼;4)使用跟蹤標(biāo)志(命令行參數(shù))啟動 SQL Server ;5)查看服務(wù)的屬性。,4 SQL Server配置管理器,先啟動SQL Server 配置管理器,方法是:
19、“開始”菜單→“所有程序”→“Microsoft SQL Server 2005”→“配置工具”→“SQL Server Configuration Manager”,SQL Server 配置管理器啟動后界面如圖7-35。選中某服務(wù)后能通過菜單或工具或鼠標(biāo)右鍵彈出的快捷菜單實施操作。,圖7-35 SQL Server Configuration Manager主界面,5 SQL Server 2005外圍應(yīng)用配置器,使用 SQL Se
20、rver 外圍應(yīng)用配置器,可以啟用、禁用、開始或停止 SQL Server 2005 安裝的一些功能、服務(wù)和遠(yuǎn)程連接??梢栽诒镜睾瓦h(yuǎn)程服務(wù)器中使用 SQL Server 外圍應(yīng)用配置器。 SQL Server 外圍應(yīng)用配置器使用Window Management Instrumentation (WMI) 查看和更改服務(wù)器設(shè)置。WMI 提供了一種統(tǒng)一的方式,用于與管理配置SQL Server的注冊表操作的 API 調(diào)用進(jìn)行連接。 可
21、通過 SQL Server 開始菜單使用 SQL Server 外圍應(yīng)用配置器:在“開始”菜單中,依次指向“所有程序”、Microsoft SQL Server 2005 和“配置工具”,再單擊“SQL Server 外圍應(yīng)用配置器”來啟動之。,返回本節(jié)首頁,5 SQL Server 2005外圍應(yīng)用配置器,,,圖7-37 SQL Server 2005外圍應(yīng)用配置器界面 圖7-38 功能的外圍應(yīng)用配置器的配置,6
22、SQL Server Profiler(事件探查器),SQL Server Profiler 是一個功能豐富的界面,用于創(chuàng)建和管理跟蹤,并分析和重播跟蹤結(jié)果。對SQL Server Profiler 的使用取決于您出于何種目的監(jiān)視SQL Server Database Engine 實例。例如,如果您正處于生產(chǎn)周期的開發(fā)階段,則您會更關(guān)心如何盡可能地獲取所有的性能詳細(xì)信息,而不會過于關(guān)心跟蹤多個事件會造成多大的開銷。相反,如果您正在監(jiān)視
23、生產(chǎn)服務(wù)器,則會希望跟蹤更加集中,并盡可能占用較少的時間,以便盡可能地減輕服務(wù)器的跟蹤負(fù)載。,返回本節(jié)首頁,6 SQL Server Profiler(事件探查器),,圖7-39 事件跟蹤中,7 數(shù)據(jù)庫引擎優(yōu)化顧問(Database Engine Tuning Advisor),數(shù)據(jù)庫引擎優(yōu)化顧問是 SQL Server 2005 中的新工具,使用該工具可以優(yōu)化數(shù)據(jù)庫,提高查詢處理的性能。數(shù)據(jù)庫引擎優(yōu)化顧問檢查指定數(shù)據(jù)庫中處理查詢的方
24、式,然后建議如何通過修改物理設(shè)計結(jié)構(gòu)(例如索引、索引視圖和分區(qū))來改善查詢處理性能。 它取代了SQL Server 2000中的索引優(yōu)化向?qū)?,并提供了許多新增功能。例如,數(shù)據(jù)庫引擎優(yōu)化顧問提供兩個用戶界面:圖形用戶界面(GUI)和dta命令提示實用工具。使用 GUI 可以方便快捷地查看優(yōu)化會話結(jié)果,而使用dta實用工具則可以輕松地將數(shù)據(jù)庫引擎優(yōu)化顧問功能并入腳本中,從而實現(xiàn)自動優(yōu)化。此外,數(shù)據(jù)庫引擎優(yōu)化顧問可以接受XML輸入,該輸入可
25、對優(yōu)化過程進(jìn)行更多控制。,7 數(shù)據(jù)庫引擎優(yōu)化顧問(Database Engine Tuning Advisor),,,圖7-40 連接到數(shù)據(jù)庫引擎優(yōu)化顧問 圖7-41 默認(rèn)新建會話,返回本節(jié)首頁,8 SQL Server聯(lián)機叢書,啟動方法:“開始”菜單→“所有程序”→“Microsoft SQL Server 2005”→“文檔和教程”→“SQL Server聯(lián)
26、機叢書”,SQL Server聯(lián)機叢書啟動后界面如下圖7-42:,圖7-42 “SQL Server聯(lián)機叢書”幫助界面,上機實習(xí)1,實驗?zāi)康?)了解SQL Server 2005的特點與新功能;2)安裝SQL Server 2005;3)學(xué)習(xí)使用SQL Server 2005的主要組件。實驗內(nèi)容1.在自己的計算機上安裝SQL Server 2005的某個版本。2.驗證SQL Server 2005 是否安裝成功?3.安裝SQL
27、 Server 2005的示例數(shù)據(jù)庫和示例。4. 操作并認(rèn)識SQL Server Management Studio窗體界面。5.請用幾種不同的方法實現(xiàn)注冊數(shù)據(jù)庫服務(wù)器與對象資源管理器的連接。,上機實習(xí)1,6. 把“已注冊服務(wù)器”或“對象資源管理器”組件窗口盡可能多地移到SQL Server Management Studio的不同區(qū)域,并最后恢復(fù)原來狀態(tài)。7. 利用菜單方式來控制“已注冊服務(wù)器”或“對象資源管理器”組件窗口的浮動
28、、可??浚ㄒ堰x中)、選項卡式文檔、自動隱藏、隱藏等。8. 針對不同的數(shù)據(jù)庫建立新查詢編輯器文檔窗口。9. 配置文檔窗口以選項卡方式或MDI方式顯示。10. 顯示SQL Server 2005中對象的摘要頁。11. 在SQL Server 2005中脫機編寫代碼,然后連接到不同SQL Server服務(wù)器的不同數(shù)據(jù)庫上,嘗試執(zhí)行編寫的代碼。,上機實習(xí)1,12 . 使用模板創(chuàng)建數(shù)據(jù)庫JXGL,查詢編輯器連接到數(shù)據(jù)庫JXGL,對另一數(shù)據(jù)
29、庫的某表編寫CREATE腳本,把產(chǎn)生的腳本復(fù)制到連接到數(shù)據(jù)庫JXGL的查詢編輯器中,并執(zhí)行腳本,完成在數(shù)據(jù)庫JXGL中創(chuàng)建新表的操作(相當(dāng)于復(fù)制了一個新表)。13. 利用SQLCMD執(zhí)行??!DIR命令。14 .認(rèn)識并操作SQL Server 配置管理器管理。15 .認(rèn)識并操作SQL Server 2005外圍應(yīng)用配置器。16 .認(rèn)識并操作SQL Server Profiler。17. 認(rèn)識并操作數(shù)據(jù)庫引擎優(yōu)化顧問。18 .
30、 通過SQL Server 2005聯(lián)機叢書查閱它具有的新特點與新功能。,7.2 Transact-SQL,本節(jié)要點 T-SQL語言用于管理SQL Server Database Engine實例,創(chuàng)建和管理數(shù)據(jù)庫對象,以及插入、檢索、修改和刪除數(shù)據(jù)。T-SQL 是對按照國際標(biāo)準(zhǔn)化組織(ISO)和美國國家標(biāo)準(zhǔn)協(xié)會(ANSI)發(fā)布的SQL標(biāo)準(zhǔn)定義的語言的擴展。對用戶來說,T-SQL是可以與SQL Server數(shù)據(jù)庫管理系統(tǒng)進(jìn)行
31、交互的唯一語言。 本章主要簡單介紹T-SQL語言。介紹該語言的基本概念、語法格式、運算符和表達(dá)式以及基本語句和函數(shù)等的使用。,本章目錄,7.2.1 Transact-SQL語法約定 7.2.2 Transact-SQL的新增功能和增強功能 7.2.3 運算符 7.2.4 數(shù)據(jù)類型 7.2.5 函數(shù) 7.2.6 Transact-SQL變量 7.2.7 表達(dá)式 7.2.8 控制流 7.2.9 保留關(guān)鍵字 7
32、.2.10 批處理 7.2.11 Transact-SQL游標(biāo),返回本節(jié)首頁,7.2.1 Transact-SQL語法約定,T-SQL是使用SQL Server的核心,與SQL Server實例通信的所有應(yīng)用程序都通過將T-SQL語句發(fā)送到服務(wù)器運行(不考慮應(yīng)用程序的用戶界面)來實現(xiàn)使用SQL Server及其數(shù)據(jù)的,應(yīng)該說認(rèn)真學(xué)習(xí)好T-SQL是深入掌握SQL Server的必經(jīng)之路。表7-1反映出構(gòu)成T-SQL的主要內(nèi)容。,,返回本
33、節(jié)首頁,7.2.1 Transact-SQL語法約定,1、語法約定,返回本節(jié)首頁,2、多部分名稱 除非另外指定,否則,所有對數(shù)據(jù)庫對象名的T-SQL引用可以是由四部分組成的名稱,格式如下:[server_name.[database_name].[schema_name] | database_name.[schema_name] | schema_name.]object_name 其中:server_name:指定鏈接的服務(wù)器
34、名稱或遠(yuǎn)程服務(wù)器名稱;database_name:如果對象駐留在SQL Server的本地實例中,則指定 SQL Server 數(shù)據(jù)庫的名稱。如果對象在鏈接服務(wù)器中,則database_name將指定OLE DB目錄;schema_name:如果對象在 SQL Server 數(shù)據(jù)庫中,則指定包含對象的架構(gòu)的名稱。如果對象在鏈接服務(wù)器中,則 schema_name 將指定OLE DB架構(gòu)名稱;object_name:對象的名稱。,7.2.
35、1 Transact-SQL語法約定,返回本節(jié)首頁,若要省略中間節(jié)點,請使用句點來指示這些位置。表7-3顯示了對象名的有效格式。表7-3 對象名的有效格式,7.2.1 Transact-SQL語法約定,返回本節(jié)首頁,3、代碼示例約定 除非專門說明,否則,在T-SQL參考中提供的示例都已使用 SQL Server Management Studio 及其以下選項的默認(rèn)設(shè)置進(jìn)行了測試:ANSI_NULLS、ANSI_NULL_DFLT_
36、ON、ANSI_PADDING、ANSI_WARNINGS、CONCAT_NULL_YIELDS_NULL、QUOTED_IDENTIFIER。 T-SQL 參考中的大多數(shù)代碼示例都已在運行區(qū)分大小寫排序順序的服務(wù)器上進(jìn)行了測試。測試服務(wù)器通常運行 ANSI/ISO 1252 代碼頁。,7.2.1 Transact-SQL語法約定,7.2.2 Transact-SQL的新增功能和增強功能,SQL Server 2005擴展并增強T-S
37、QL語法以支持新增功能和特性。本SQL Server版本中提供的T-SQL增強功能分為以下幾類:1)示例數(shù)據(jù)庫增強功能;2)T-SQL 數(shù)據(jù)類型;3)數(shù)據(jù)庫控制臺命令(DBCC)語句;4)數(shù)據(jù)定義語言語句;5)數(shù)據(jù)操作語言語句;6)元數(shù)據(jù);7)復(fù)制系統(tǒng)存儲過程;8)其它語句。,返回本節(jié)首頁,運算符是一種符號,用來指定要在一個或多個表達(dá)式中執(zhí)行的操作。SQL Server 2005所使用的運算符類別有:算術(shù)運算符、邏輯運算
38、符、賦值運算符、字符串串聯(lián)運算符、按位運算符、一元運算符和比較運算符。,7.2.3 運算符,1、算術(shù)運算符 算術(shù)運算符對兩個表達(dá)式執(zhí)行數(shù)學(xué)運算,這兩個表達(dá)式可以是數(shù)值數(shù)據(jù)類型類別的一個或多個數(shù)據(jù)類型。算術(shù)運算符有:+(加)、(減)、*(乘)、/(除)、%(取模)。 %(取模):返回一個除法運算的整數(shù)余數(shù)。例如,12%5=2,這是因為12除以5,余數(shù)為2。加(+)和減(-)運算符也可用于對datetime和smalldatetime值
39、執(zhí)行算術(shù)運算。如: select getdate(),getdate()-10,cast((getdate()-cast('2006-01-18' as datetime)) as int),cast((getdate()-('2006-01-18')) as int) --查詢當(dāng)前日期、10天前日期、日期間隔天數(shù)等。,7.2.3 運算符,2、邏輯運算符 邏輯運算符對某些條件進(jìn)行測試,以獲得其真實
40、情況。邏輯運算符和比較運算符一樣,返回帶有TRUE或FALSE值的Boolean數(shù)據(jù)類型,見表7-4。其使用詳見第6章。表7-4 邏輯運算符,7.2.3 運算符,返回本節(jié)首頁,7.2.3 運算符,3、賦值運算符 等號(=)是唯一的T-SQL賦值運算符。在以下示例中,將創(chuàng)建一個@MyCounter變量,然后賦值運算符將@MyCounter設(shè)置為表達(dá)式返回的值。DECLARE @MyCounter INT; SET @MyCounter
41、 = 10;,4、字符串串聯(lián)運算符 加號(+)是字符串串聯(lián)運算符,可以用它將字符串串聯(lián)起來。其它所有字符串操作都使用字符串函數(shù)(如SUBSTRING)進(jìn)行處理。,,5、位運算符 位運算符在兩個表達(dá)式之間執(zhí)行位操作,這兩個表達(dá)式可以為整數(shù)數(shù)據(jù)類型類別中的任何數(shù)據(jù)類型。見表7-5。 位運算符的操作數(shù)可以是整數(shù)或二進(jìn)制字符串?dāng)?shù)據(jù)類型類別中的任何數(shù)據(jù)類型(image 數(shù)據(jù)類型除外),但兩個操作數(shù)
42、不能同時是二進(jìn)制字符串?dāng)?shù)據(jù)類型類別中的某種數(shù)據(jù)類型。表7-6顯示所支持的操作數(shù)數(shù)據(jù)類型。,7.2.3 運算符,返回本節(jié)首頁,表7-5 位運算符,表7-6 位運算符的操作數(shù)要求,7.2.3 運算符,返回本節(jié)首頁,6、一元運算符 一元運算符只對一個表達(dá)式執(zhí)行操作,該表達(dá)式可以是numeric數(shù)據(jù)類型類別中的任何一種數(shù)據(jù)類型。具體為:+(正):數(shù)值為正;-(負(fù)):數(shù)值為負(fù);~(位非):返回數(shù)字的非。其中:+(正)和-(負(fù))運算符可以用于nu
43、meric數(shù)據(jù)類型類別中任一數(shù)據(jù)類型的任意表達(dá)式。~(位非)運算符只能用于整數(shù)數(shù)據(jù)類型類別中任一數(shù)據(jù)類型的表達(dá)式。,7、比較運算符 比較運算符測試兩個表達(dá)式是否相同。除了text、ntext 或image 數(shù)據(jù)類型的表達(dá)式外,比較運算符可以用于所有的表達(dá)式。T-SQL比較運算符有:=(等于)、>(大于)、=(大于等于)、(不等于)、!=(不等于,非SQL-92標(biāo)準(zhǔn))、!(不大于,非SQL-92標(biāo)準(zhǔn))。,7.2.3 運算符,返回本
44、節(jié)首頁,8、運算符優(yōu)先級和結(jié)合性 表達(dá)式計算器支持的運算符集中的每個運算符在優(yōu)先級層次結(jié)構(gòu)中都有指定的優(yōu)先級,并包含一個計算方向。運算符的計算方向就是運算符結(jié)合性。具有高優(yōu)先級的運算符先于低優(yōu)先級的運算符進(jìn)行計算。如果復(fù)雜的表達(dá)式有多個運算符,則運算符優(yōu)先級將確定執(zhí)行操作的順序。執(zhí)行順序可能對結(jié)果值有明顯的影響。某些運算符具有相等的優(yōu)先級。如果表達(dá)式包含多個具有相等的優(yōu)先級的運算符,則按照從左到右或從右到左的方向進(jìn)行運算。,7.2.3
45、 運算符,返回本節(jié)首頁,下表7-7按從高到低的順序列出了運算符的優(yōu)先級。同層運算符具有相等的優(yōu)先級。表7-7 運算符的優(yōu)先級與結(jié)合性,7.2.3 運算符,7.2.4 數(shù)據(jù)類型,在 SQL Server 2005中,每個列、局部變量、表達(dá)式和參數(shù)都具有一個相關(guān)的數(shù)據(jù)類型。數(shù)據(jù)類型是一種屬性,用于指定對象可保存的數(shù)據(jù)的類型:整數(shù)數(shù)據(jù)、字符數(shù)據(jù)、貨幣數(shù)據(jù)、日期和時間數(shù)據(jù)、二進(jìn)制字符串等。 SQL Server 提供系統(tǒng)數(shù)據(jù)類型集,該類
46、型集定義了可與 SQL Server 一起使用的所有數(shù)據(jù)類型。您還可以在T-SQL或 .NET Framework 中定義自己的數(shù)據(jù)類型。別名數(shù)據(jù)類型基于系統(tǒng)提供的數(shù)據(jù)類型。用戶定義類型從您使用 .NET Framework 支持的編程語言之一創(chuàng)建的類的方法和運算符中獲取它們的特征。,返回本節(jié)首頁,SQL Server 2005中的數(shù)據(jù)類型歸納為下列類別:精確數(shù)字、Unicode 字符串、近似數(shù)字、二進(jìn)制字符串、日期和時間、其它數(shù)據(jù)類型
47、、字符串。精確數(shù)字:bigint,decimal,int,numeric,smallint,money,tinyint,smallmoney,bit 近似數(shù)字:float,real;日期和時間:datetime,smalldatetime 字符串1:char,text,varchar,Unicode;,7.2.4 數(shù)據(jù)類型,字符串2:nchar,ntext,nvarchar 二進(jìn)制字符串:binary,image,varb
48、inary 其它類型:cursor,timestamp,sql_variant,uniqueidentifier,table,xml 在 SQL Server 2005中,根據(jù)其存儲特征,某些數(shù)據(jù)類型被指定為屬于下列各組:1)大值數(shù)據(jù)類型:varchar(max),nvarchar(max)和varbinary(max);2)大型對象數(shù)據(jù)類型:text,ntext,image,varchar(max),nv
49、archar(max),varbinary(max)和xml。,7.2.4 數(shù)據(jù)類型,返回本節(jié)首頁,1、數(shù)據(jù)類型優(yōu)先級 當(dāng)兩個不同數(shù)據(jù)類型的表達(dá)式用運算符組合后,數(shù)據(jù)類型優(yōu)先級規(guī)則指定將優(yōu)先級較低的數(shù)據(jù)類型轉(zhuǎn)換為優(yōu)先級較高的數(shù)據(jù)類型。如果此轉(zhuǎn)換不是所支持的隱式轉(zhuǎn)換,則返回錯誤。當(dāng)兩個操作數(shù)表達(dá)式具有相同的數(shù)據(jù)類型時,運算的結(jié)果便為該數(shù)據(jù)類型。 SQL Server 2005對數(shù)據(jù)類型使用以下優(yōu)先級順序:用戶定義數(shù)據(jù)類型(最高)→s
50、ql_variant→xml→datetime→smalldatetime→float→real→decimal→money→smallmoney→bigint→int→smallint→tinyint→bit→ntext→text→image→timestamp→uniqueidentifier→nvarchar→nchar→varchar→char→varbinary→binary(最低),7.2.4 數(shù)據(jù)類型,返回本節(jié)首頁,可以
51、按以下方案轉(zhuǎn)換數(shù)據(jù)類型: 當(dāng)一個對象的數(shù)據(jù)移到另一個對象,或兩個對象之間的數(shù)據(jù)進(jìn)行比較或組合時,數(shù)據(jù)可能需要從一個對象的數(shù)據(jù)類型轉(zhuǎn)換為另一個對象的數(shù)據(jù)類型。 將T-SQL結(jié)果列、返回代碼或輸出參數(shù)中的數(shù)據(jù)移到某個程序變量中時,必須將這些數(shù)據(jù)從SQLServer 2005系統(tǒng)數(shù)據(jù)類型轉(zhuǎn)換成該變量的數(shù)據(jù)類型。 可以隱式或顯式轉(zhuǎn)換數(shù)據(jù)類型:1)隱式轉(zhuǎn)換:SQL Server會自動將數(shù)據(jù)從一種數(shù)據(jù)類型轉(zhuǎn)換為另一種數(shù)據(jù)類型。例如,將smal
52、lint與int進(jìn)行比較時,在比較之前smallint會被隱式轉(zhuǎn)換為int;2)顯式轉(zhuǎn)換:使用CAST或CONVERT函數(shù)來實現(xiàn)類型的顯式轉(zhuǎn)換。,7.2.4 數(shù)據(jù)類型,返回本節(jié)首頁,3、數(shù)據(jù)類型轉(zhuǎn)換行為 以下說明下列數(shù)據(jù)類型所表現(xiàn)出來的轉(zhuǎn)換行為:binary和varbinary數(shù)據(jù);float和real數(shù)據(jù);bit數(shù)據(jù);money數(shù)據(jù);字符數(shù)據(jù);decimal和numeric數(shù)據(jù);datetime和smalldatetime數(shù)據(jù);使
53、用OLE自動化存儲過程轉(zhuǎn)換數(shù)據(jù)類型。,7.2.4 數(shù)據(jù)類型,返回本節(jié)首頁,4、排序規(guī)則優(yōu)先順序 排序規(guī)則優(yōu)先順序也稱為排序規(guī)則強制規(guī)則,用于確定:1)計算結(jié)果為字符串的表達(dá)式的最終結(jié)果排序規(guī)則;2)區(qū)分排序規(guī)則的運算符所使用的排序規(guī)則,這些運算符使用字符串輸入但不返回字符串,如LIKE和IN。 排序規(guī)則的優(yōu)先順序規(guī)則只應(yīng)用于下列字符串?dāng)?shù)據(jù)類型:char、varchar、text、nchar、nvarchar和ntext。具有其它數(shù)
54、據(jù)類型的對象不參與排序規(guī)則計算。,7.2.4 數(shù)據(jù)類型,在數(shù)據(jù)類型轉(zhuǎn)換之后確定排序規(guī)則優(yōu)先順序(具體略)。生成結(jié)果排序規(guī)則的操作數(shù)可以與提供最終結(jié)果數(shù)據(jù)類型的操作數(shù)不同。例如,請看下面的批處理: CREATE TABLE TestTb(PrimaryKey int PRIMARY KEY,CharCol char(10) COLLATE French_CI_AS) SELECT * FROM TestTb WHERE CharCo
55、l LIKE N'abc' 簡單表達(dá)式N'abc'的Unicode數(shù)據(jù)類型有更高的數(shù)據(jù)類型優(yōu)先級。因此,所生成的表達(dá)式將Unicode數(shù)據(jù)類型分配給N'abc'。但是,表達(dá)式CharCol具有隱式排序規(guī)則標(biāo)簽,而N'abc'具有級別更低的強制標(biāo)簽,即強制默認(rèn)。因此,所使用的排序規(guī)則是CharCol的French_CI_AS 排序規(guī)則。,7.2.4 數(shù)據(jù)類型,返回本節(jié)首頁
56、,7.2.5 函數(shù),SQL Server 2005提供了許多內(nèi)置函數(shù),同時也允許您創(chuàng)建用戶定義函數(shù)。 函數(shù)類型分類表見表7-10。其中最常用的標(biāo)量函數(shù)有:配置函數(shù)、游標(biāo)函數(shù)、日期和時間函數(shù)、數(shù)學(xué)函數(shù)、元數(shù)據(jù)函數(shù)、安全函數(shù)、字符串函數(shù)、系統(tǒng)函數(shù)、系統(tǒng)統(tǒng)計函數(shù)、文本和圖像函數(shù)等10類。,表7-10 函數(shù)分類表,返回本節(jié)首頁,1、系統(tǒng)函數(shù) 下列函數(shù)對SQL Server 2005中的值、對象和設(shè)置進(jìn)行操作并返回有關(guān)信息。它們是:APP
57、_NAME、CASE表達(dá)式、CAST和CONVERT、COALESCE、CURRENT_TIMESTAMP、CURRENT_USER、DATALENGTH、@@ERROR、ERROR_LINE、ERROR_MESSAGE、ERROR_NUMBER、ERROR_PROCEDURE、ERROR_SEVERITY、ERROR_STATE、fn_helpcollations、HOST_ID、HOST_NAME、@@IDENTITY、ISDATE
58、、ISNULL、ISNUMERIC、NEWID、PARSENAME、@@ROWCOUNT、SERVERPROPERTY、SESSIONPROPERTY、SESSION_USER、SYSTEM_USER、USER_NAME等。,7.2.5 函數(shù),返回本節(jié)首頁,2、常用函數(shù)介紹 1. 統(tǒng)計函數(shù) 在SQL Server 2005中的統(tǒng)計函數(shù)如下:(1)STDEV:STDEV函數(shù)返回給定表達(dá)式中所有值的統(tǒng)計標(biāo)準(zhǔn)偏差。其語法格式如下:STDE
59、V(expression),expression是數(shù)字表達(dá)式。不允許進(jìn)行聚合函數(shù)運算和子查詢。expression 是精確數(shù)字或近似數(shù)字?jǐn)?shù)據(jù)類型分類(bit數(shù)據(jù)類型除外)的表達(dá)式。它的返回類型是float。其它統(tǒng)計函數(shù)參數(shù)與返回類型情況相同。其它統(tǒng)計函數(shù)語法格式類似。(2)STDEVP:STDEVP函數(shù)返回給定表達(dá)式中所有值的填充統(tǒng)計標(biāo)準(zhǔn)偏差。例如:USE AdventureWorks; SELECT STDEVP(Bonus) F
60、ROM Sales.SalesPerson(3)VAR:VAR函數(shù)返回給定表達(dá)式中所有值的統(tǒng)計方差。(4)VARP:VARP函數(shù)返回給定表達(dá)式中所有值的填充的統(tǒng)計方差。,7.2.5 函數(shù),返回本節(jié)首頁,2. 算術(shù)函數(shù) 算術(shù)函數(shù)(例如 ABS、CEILING、DEGREES、FLOOR、POWER、RADIANS和SIGN)返回與輸入值相同數(shù)據(jù)類型的值。三角函數(shù)和其它函數(shù)(包括 EXP、LOG、LOG10、SQUARE和SQRT)將
61、輸入值投影到float并返回float值。 除了RAND外,所有數(shù)學(xué)函數(shù)都是確定性函數(shù)。每次用一組特定輸入值調(diào)用它們時,所返回的結(jié)果相同。僅當(dāng)指定種子參數(shù)時,RAND才具有確定性。,7.2.5 函數(shù),返回本節(jié)首頁,3. 字符串函數(shù) 字符串函數(shù)用于對字符和二進(jìn)制字符串進(jìn)行各種操作,它們返回對字符數(shù)據(jù)進(jìn)行操作后得到的值。以下是這些字符串函數(shù)的函數(shù)名:ASCII、NCHAR、SOUNDEX、CHAR、PATINDEX、SPACE、CHAR
62、INDEX、QUOTENAME、STR、DIFFERENCE、REPLACE、STUFF、LEFT、REPLICATE、SUBSTRING、LEN、REVERSE、UNICODE、LOWER、RIGHT、UPPER、LTRIM、RTRIM。,7.2.5 函數(shù),返回本節(jié)首頁,4. 數(shù)據(jù)類型轉(zhuǎn)換函數(shù) 在一般情況下,SQL Server會自動完成數(shù)據(jù)類型的轉(zhuǎn)換,例如:可以直接將字符數(shù)據(jù)類型或表達(dá)式與DATATIME數(shù)據(jù)類型或表達(dá)式比較;當(dāng)表
63、達(dá)式中用了INTEGER,SMALLINT或TINYINT時,SQL Server也可將INTEGER數(shù)據(jù)類型或表達(dá)式轉(zhuǎn)換為SMALLINT數(shù)據(jù)類型或表達(dá)式,這稱為隱式轉(zhuǎn)換。如果不能確定SQL Server是否能完成隱式轉(zhuǎn)換或者使用了不能隱式轉(zhuǎn)換的其它數(shù)據(jù)類型,就需要使用數(shù)據(jù)類型轉(zhuǎn)換函數(shù)做顯式轉(zhuǎn)換了。此類函數(shù)有兩種: (1)CAST函數(shù):CAST的語法格式如下:CAST(expression AS data_type) (2)CON
64、VERT函數(shù):CONVERT的語法格式如下:CONVERT(data_type[(length)],expression[,style]),7.2.5 函數(shù),返回本節(jié)首頁,5. 日期函數(shù) 日期函數(shù)用來操作DATETIME和SMALLDATETIME類型的數(shù)據(jù)執(zhí)行算術(shù)運算。與其它函數(shù)一樣,可以在SELECT語句的SELECT和WHERE子句以及表達(dá)式中使用日期函數(shù)。其使用方法如下:日期函數(shù)(參數(shù))。其中參數(shù)的個數(shù)隨函數(shù)的不同而不同。
65、(1)DAY函數(shù):DAY函數(shù)返回代表指定日期的天的日期部分的整數(shù)。 其語法格式如下:DAY(date)。其返回類型為int,此函數(shù)等價于DATEPART(dd,date)。 例7-20 此示例返回從日期 01/28/2007中返回的天數(shù)。 SELECT DAY('01/28/2007') AS '幾號',7.2.5 函數(shù),返回本節(jié)首頁,(2)MONTH函數(shù):MONTH函數(shù)返回代表指定日期月份的整數(shù)。
66、(3)YEAR函數(shù):YEAR函數(shù)返回表示指定日期中的年份的整數(shù)。其語法格式如下:YEAR(date),參數(shù)date表示datetime或smalldatetime類型的表達(dá)式。其返回類型為int。此函數(shù)等價于 DATEPART(yy,date)。例7-22 本例從日期01/28/2007中返回年份數(shù):SELECT "年份"=YEAR('01/28/2007'),7.2.5 函數(shù),(4)DATEA
67、DD函數(shù):DATEADD函數(shù)表示在向指定日期加上一段時間的基礎(chǔ)上,返回新的 datetime 值。其語法格式如下:DATEADD(datepart,number,date)其中參數(shù)datepart是規(guī)定應(yīng)向日期的哪一部分增加新值的參數(shù)。下表7-13列出了SQL Server識別的日期部分和縮寫。 (5)DATEDIFF函數(shù):DATEDIFF函數(shù)返回跨兩個指定日期的日期和時間邊界數(shù)。其語法格式如下:DATEDIFF(datepart
68、,startdate,enddate)例7-23 此示例確定在 pubs 數(shù)據(jù)庫中標(biāo)題發(fā)布日期和當(dāng)前日期間的天數(shù)。USE pubs; SELECT DATEDIFF(day,pubdate,getdate()) AS no_of_days FROM titles,7.2.5 函數(shù),返回本節(jié)首頁,(6)DATENAME函數(shù):DATENAME函數(shù)返回代表指定日期的指定日期部分的字符串。其語法格式如下:DATENAME(datepar
69、t,date)(7)DATEPART函數(shù):DATEPART函數(shù)表示返回代表指定日期的指定日期部分的整數(shù)。其語法格式如下:DATEPART(datepart,date)。DATEPART函數(shù)以整數(shù)值的形式返回日期的指定部分,此部分由datepart來指定。DATEPART(dd,date)等同于DAY(date);DATEPART(mm,date)等同于MONTH(date)DATEPART(yy,date)等同于YEAR(date)
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- sql server 2005數(shù)據(jù)庫課程設(shè)計
- sql server2005數(shù)據(jù)庫備份與恢復(fù)研究-
- sql server數(shù)據(jù)庫教程-
- sql server數(shù)據(jù)庫原理畢業(yè)設(shè)計管理系統(tǒng)
- sql server數(shù)據(jù)庫試卷題庫
- 基于SQL Server數(shù)據(jù)庫的PDM系統(tǒng).pdf
- 基于SQL Server的心音數(shù)據(jù)庫管理系統(tǒng)設(shè)計.pdf
- sql server數(shù)據(jù)庫日常維護(hù)規(guī)范
- 收縮sql server數(shù)據(jù)庫日志文件
- sql server數(shù)據(jù)庫信息安全實施策略
- 《sql server數(shù)據(jù)庫技術(shù)》課程標(biāo)準(zhǔn)
- SQL Server數(shù)據(jù)庫入侵檢測系統(tǒng)的研究.pdf
- 《sql server數(shù)據(jù)庫管理》試題庫管理系統(tǒng) 畢業(yè)論文
- sql__server數(shù)據(jù)庫課程設(shè)計
- sql_server數(shù)據(jù)庫課程標(biāo)準(zhǔn)
- sql_server數(shù)據(jù)庫課程設(shè)計_圖書館管理系統(tǒng)
- sql server第2章 數(shù)據(jù)庫的創(chuàng)建與管理
- SQL SERVER數(shù)據(jù)庫性能調(diào)整與優(yōu)化.pdf
- SQL SERVER數(shù)據(jù)庫審計系統(tǒng)的設(shè)計與實現(xiàn).pdf
- sql server觸發(fā)器存入遠(yuǎn)程數(shù)據(jù)庫
評論
0/150
提交評論