第2章 SQL SERVER基礎-2教材_第1頁
第2章 SQL SERVER基礎-2教材_第2頁
第2章 SQL SERVER基礎-2教材_第3頁
第2章 SQL SERVER基礎-2教材_第4頁
第2章 SQL SERVER基礎-2教材_第5頁
已閱讀5頁,還剩229頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

數(shù)據(jù)庫與程序設計高等教育“十一五”國家級規(guī)劃教材《數(shù)據(jù)庫與程序設計》山東大學出版社第1章數(shù)據(jù)庫技術基礎

第2章SQLServer基礎第3章SQLServer數(shù)據(jù)庫管理第4章查詢與視圖第5章存儲過程與觸發(fā)器

*第6章基于Web的數(shù)據(jù)庫應用開發(fā)技術

*第7章數(shù)據(jù)庫應用開發(fā)案例

*第8章數(shù)據(jù)庫安全性與維護目

錄高等教育“十一五”國家級規(guī)劃教材《數(shù)據(jù)庫與程序設計》山東大學出版社第2章SQLServer基礎2.1MSSQLServer2005的安裝與配置2.2Transact-SQL語言基礎2.3T-SQL其他語言元素高等教育“十一五”國家級規(guī)劃教材《數(shù)據(jù)庫與程序設計》山東大學出版社2.1MSSQLServer2005的安裝與配置2.1.1MSSQLServer2005簡介2.1.2安裝MSSQLServer20052.1.3MSSQLServer2005管理工具高等教育“十一五”國家級規(guī)劃教材《數(shù)據(jù)庫與程序設計》山東大學出版社2.1.1MSSQLServer2005功能簡介SQLServer發(fā)展史1989年,SQLServer1.0誕生,由Microsoft和Sybase合作推出。1992年,Microsoft和Sybase合作,推出了基于OS/2的SQLServer4.2版。1993年,在Microsoft推出WindowsNT3.1后不久,Microsoft如期發(fā)布了SQLServer的WindowsNT版.這時Microsoft和Sybase的合作出現(xiàn)危機.最后經(jīng)協(xié)商,兩公司達成協(xié)議,宣布各自發(fā)展自己的數(shù)據(jù)庫產品,Microsoft得到了自由修改SQLServer代碼的許可,此后,WindowsNT成了SQLServer運行的唯一平臺。高等教育“十一五”國家級規(guī)劃教材《數(shù)據(jù)庫與程序設計》山東大學出版社SQLServer發(fā)展史1995年Microsoft發(fā)布了代號為SQL95的SQLServer6.0,隨后Microsoft重寫了SQLServer核心,發(fā)布了SQLServer6.05。1996年,Microsoft推出了影響深遠的SQLServer6.5。SQLServer6.5是一個性能穩(wěn)定,功能強大的現(xiàn)代數(shù)據(jù)庫產品。1998年底,Microsoft發(fā)布了SQLServer7.0,這是Microsoft一個劃時代的產品,它完全擺脫了Sybase體系的框架.從這一版本起得到了廣泛的應用。2000年,SQLServer2000發(fā)布,它是企業(yè)級的數(shù)據(jù)庫系統(tǒng),包含了三個組件:DB、OLAP(聯(lián)機分析處理)和EnglishQuery.豐富了前端工具,完善的開發(fā)工具,以及對XML的支持。在隨后的幾年里,Microsoft又推出了與之相關的一系列產品。2005年,Microsoft發(fā)布了SQLServer2005。目前SQLServer的最新版本是SQLServer2008。高等教育“十一五”國家級規(guī)劃教材《數(shù)據(jù)庫與程序設計》山東大學出版社SQLServer2005功能1.企業(yè)數(shù)據(jù)管理提供管理控制臺,使數(shù)據(jù)管理員能夠在任何地方監(jiān)視、管理和調諧企業(yè)中所有的數(shù)據(jù)庫。SQLServer2005針對企業(yè)數(shù)據(jù)管理具有的功能主要體現(xiàn)在以下幾方面:(1)可用性。(2)伸縮性。(3)安全性。(4)易管理性。高等教育“十一五”國家級規(guī)劃教材《數(shù)據(jù)庫與程序設計》山東大學出版社可用性在高度可用技術、額外的備份和恢復功能,以及復制增強特性可使企業(yè)能夠構建和部署高度可用的應用系統(tǒng)。SQLServer2005在高可用上的創(chuàng)新有:數(shù)據(jù)鏡像,故障轉移集群,數(shù)據(jù)庫快照和增強的聯(lián)機操作,這有助于最小化宕機時間和確保企業(yè)的關鍵系統(tǒng)可用。高等教育“十一五”國家級規(guī)劃教材《數(shù)據(jù)庫與程序設計》山東大學出版社可伸縮性提供了諸如表分區(qū)、快照隔離、64位支持等方面的高級可伸縮性功能,使你能夠使用SQLServer2005構建和部署最關鍵的應用。表和索引的分區(qū)功能顯著的增強了對大型數(shù)據(jù)庫的查詢性能。高等教育“十一五”國家級規(guī)劃教材《數(shù)據(jù)庫與程序設計》山東大學出版社安全性SQLServer2005在數(shù)據(jù)庫平臺的安全模型上有了顯著的增強,由于提供了更為精確和靈活的控制,數(shù)據(jù)安全更為嚴格。為了給企業(yè)數(shù)據(jù)提供更高級別的安全,微軟做了相當多的投資,實現(xiàn)了很多特性:在認證空間里強制SQLServerlogin密碼策略在認證空間里可根據(jù)不同的范圍上指定的權限來提供更細的粒度在安全管理空間中允許分離所有者和模式(schema)高等教育“十一五”國家級規(guī)劃教材《數(shù)據(jù)庫與程序設計》山東大學出版社易管理性SQLServer2005能夠更為簡單的部署、管理和優(yōu)化企業(yè)數(shù)據(jù)和分析應用程序。作為一個企業(yè)數(shù)據(jù)管理平臺,SQLServer2005提供了一個唯一的管理控制臺,使得數(shù)據(jù)管理人員能夠在組織內的任何地方監(jiān)視、管理和調諧企業(yè)中所有的數(shù)據(jù)庫和相關的服務。它還提供了一個可擴展的管理架構,可以更容易的用SQL管理對象(SMO)來編程,使得用戶可以定制和擴展他們的管理環(huán)境,獨立軟件開發(fā)商(ISV)也能夠創(chuàng)建附加的工具和功能來更好的擴展應用。高等教育“十一五”國家級規(guī)劃教材《數(shù)據(jù)庫與程序設計》山東大學出版社2.應用開發(fā)在數(shù)據(jù)庫上開發(fā)應用程序可以分成兩個方面:(1)Transact-SQL(T-SQL),T-SQL是用于SQLServer的最常見的也是功能最強大的編程語言,用戶可以通過編寫T-SQL查詢語句來完成對數(shù)據(jù)庫的操作。許多簡單的操作可以作為T-SQL中的存儲過程完成,在返回數(shù)據(jù)集合方面T-SQL性能優(yōu)越。高等教育“十一五”國家級規(guī)劃教材《數(shù)據(jù)庫與程序設計》山東大學出版社(2)通用語言運行時CLR(CommonLanguageRuntime),CLR是微軟.Net框架的一部分,用來管理用任意支持的語言編寫的程序執(zhí)行、允許他們分享用任意語言編寫的通用的面向對象的類的程序。CLR的核心功能包括:內存管理、程序集加載、安全性、異常處理和線程同步,可由面向CLR的所有語言使用。并保證應用和底層操作系統(tǒng)之間必要的分離。CLR是.NETFramework的主要執(zhí)行引擎。高等教育“十一五”國家級規(guī)劃教材《數(shù)據(jù)庫與程序設計》山東大學出版社CLR有些像Sun公司運行Java程序的Java虛擬機,微軟將它自己的通用語言運行時(CLR)叫做“管理執(zhí)行環(huán)境”。一個被CLR編譯的程序,不需要特殊的語言執(zhí)行環(huán)境,因此能夠方便的移植和運行在任意的Windows操作系統(tǒng)平臺上。高等教育“十一五”國家級規(guī)劃教材《數(shù)據(jù)庫與程序設計》山東大學出版社在SQLServer2005中,CLR允許編程人員直接在SQLServer中創(chuàng)建存儲過程,觸發(fā)器,用戶定義函數(shù),集合和類型。使用CLR,可以替換擴展存儲過程,例如,那些與數(shù)據(jù)庫關系密切,但是T-SQL處理起來過于繁瑣的,并且很難輕松地移動到事務的業(yè)務邏輯端的數(shù)據(jù)庫操作,可以使用CLR完成。高等教育“十一五”國家級規(guī)劃教材《數(shù)據(jù)庫與程序設計》山東大學出版社3.商業(yè)智能商業(yè)智能(BusinessIntelligence,BI)不是專指一項具體的技術,它是一種解決方案,其目的就是把用戶積累下來的、大量的數(shù)據(jù)轉化為業(yè)務人員容易理解的信息。包括:數(shù)據(jù)倉庫(DataWarehouse,DW)、聯(lián)機分析處理(On-LineAnalyticalProcessing,OLAP)、數(shù)據(jù)挖掘(DataMining,DM)、決策支持系統(tǒng)(DecisionSupportSystem,DSS)等技術。高等教育“十一五”國家級規(guī)劃教材《數(shù)據(jù)庫與程序設計》山東大學出版社在SQLServer2005的數(shù)據(jù)挖掘平臺中,數(shù)據(jù)挖掘模型類似于一個關系型的表,其中包括關鍵字、輸入、預測3個屬性,每個模型跟一個數(shù)據(jù)挖掘算法相關聯(lián)。SQLServer2005的分析服務給用戶提供了9種常用的數(shù)據(jù)挖掘算法,分別是:決策樹算法、聚類算法、貝葉斯算法、時間序列算法、關聯(lián)算法、序列聚類算法、神經(jīng)網(wǎng)絡算法、線性回歸算法、邏輯回歸算法。除了這9種算法以外,用戶還可以根據(jù)自己的需要嵌人其他的算法,各種算法應該結合數(shù)據(jù)挖掘系統(tǒng)的要求來選擇合適的挖掘模型。高等教育“十一五”國家級規(guī)劃教材《數(shù)據(jù)庫與程序設計》山東大學出版社2.1.2安裝MSSQLServer20051.SQLServer2005的版本SQLServer2005EnterpriseEdition(企業(yè)版)SQLServer2005DeveloperEdition(開發(fā)版)SQLServer2005StandardEdition(標準版)SQLServer2005WorkgroupEdition(工作組版)SQLServer2005ExpressEdition(簡易版)SQLServer2005EvaluationEdition(評估版)SQLServer2005CompactEdition(精簡版)高等教育“十一五”國家級規(guī)劃教材《數(shù)據(jù)庫與程序設計》山東大學出版社EnterpriseEdition(32位和64位)

EnterpriseEdition達到了支持超大型企業(yè)進行聯(lián)機事務處理(OLTP)、高度復雜的數(shù)據(jù)分析、數(shù)據(jù)倉庫系統(tǒng)和網(wǎng)站所需的性能水平。EnterpriseEdition的全面商業(yè)智能和分析能力及其高可用性功能(如故障轉移群集),使它可以處理大多數(shù)關鍵業(yè)務的企業(yè)工作負荷。EnterpriseEdition是最全面的SQLServer版本,是超大型企業(yè)的理想選擇,能夠滿足最復雜的要求。高等教育“十一五”國家級規(guī)劃教材《數(shù)據(jù)庫與程序設計》山東大學出版社DeveloperEdition(32位和64位)

DeveloperEdition使開發(fā)人員可以在SQLServer上生成任何類型的應用程序。它包括SQLServer2005EnterpriseEdition的所有功能,但有許可限制,只能用于開發(fā)和測試系統(tǒng),而不能用作生產服務器。DeveloperEdition是獨立軟件供應商(ISV)、咨詢人員、系統(tǒng)集成商、解決方案供應商以及創(chuàng)建和測試應用程序的企業(yè)開發(fā)人員的理想選擇。DeveloperEdition可以根據(jù)生產需要升級至SQLServer2005EnterpriseEdition。高等教育“十一五”國家級規(guī)劃教材《數(shù)據(jù)庫與程序設計》山東大學出版社StandardEdition(32位和64位)

StandardEdition是適合中小型企業(yè)的數(shù)據(jù)管理和分析平臺。它包括電子商務、數(shù)據(jù)倉庫和業(yè)務流解決方案所需的基本功能。StandardEdition的集成商業(yè)智能和高可用性功能可以為企業(yè)提供支持其運營所需的基本功能。StandardEdition是需要全面的數(shù)據(jù)管理和分析平臺的中小型企業(yè)的理想選擇。高等教育“十一五”國家級規(guī)劃教材《數(shù)據(jù)庫與程序設計》山東大學出版社WorkgroupEdition(僅適用于32位)對于那些需要在大小和用戶數(shù)量上沒有限制的數(shù)據(jù)庫的小型企業(yè),WorkgroupEdition是理想的數(shù)據(jù)管理解決方案。WorkgroupEdition可以用作前端Web服務器,也可以用于部門或分支機構的運營。它包括SQLServer產品系列的核心數(shù)據(jù)庫功能,并且可以輕松地升級至StandardEdition或EnterpriseEdition。WorkgroupEdition是理想的入門級數(shù)據(jù)庫,具有可靠、功能強大且易于管理的特點。高等教育“十一五”國家級規(guī)劃教材《數(shù)據(jù)庫與程序設計》山東大學出版社ExpressEdition(僅適用于32位)

SQLServerExpress是一個免費、易用且便于管理的數(shù)據(jù)庫。SQLServerExpress與MicrosoftVisualStudio2005集成在一起,可以輕松開發(fā)功能豐富、存儲安全、可快速部署的數(shù)據(jù)驅動應用程序。SQLServerExpress是免費的,可以再分發(fā)(受制于協(xié)議),還可以起到客戶端數(shù)據(jù)庫以及基本服務器數(shù)據(jù)庫的作用。SQLServerExpress是低端ISV、低端服務器用戶、創(chuàng)建Web應用程序的非專業(yè)開發(fā)人員以及創(chuàng)建客戶端應用程序的編程愛好者的理想選擇。高等教育“十一五”國家級規(guī)劃教材《數(shù)據(jù)庫與程序設計》山東大學出版社EvaluationEdition(32位和64位)SQLServer2005還推出了適用于32位或64位平臺的180天EvaluationEdition。SQLServerEvaluationEdition支持與SQLServer2005EnterpriseEdition相同的功能集。可以根據(jù)生產需要升級SQLServerEvaluationEdition。高等教育“十一五”國家級規(guī)劃教材《數(shù)據(jù)庫與程序設計》山東大學出版社CompactEdition(僅32位)SQLServer2005CompactEdition是簡版數(shù)據(jù)庫,將企業(yè)數(shù)據(jù)管理功能擴展到小型設備上。SQLServer2005CompactEdition能夠復制SQLServer2005和SQLServer2000的數(shù)據(jù),并且允許用戶維護與主數(shù)據(jù)庫同步的移動數(shù)據(jù)存儲。SQLServer2005CompactEdition是唯一為智能設備提供關系數(shù)據(jù)庫管理功能的SQLServer版本。高等教育“十一五”國家級規(guī)劃教材《數(shù)據(jù)庫與程序設計》山東大學出版社2.SQLServer2005的硬件要求顯示器SQLServer圖形工具需要VGA或更高分辨率:分辨率至少為1024x768像素。指針設備需要Microsoft鼠標或兼容的指針設備。CD或DVD驅動器通過CD或DVD媒體進行安裝時需要相應的CD或DVD驅動器。高等教育“十一五”國家級規(guī)劃教材《數(shù)據(jù)庫與程序設計》山東大學出版社硬件要求群集硬件要求在32位和64位平臺上,支持8節(jié)點群集安裝(即MicrosoftWindowsServer2003支持的最大節(jié)點數(shù)量)。有關高可用性解決方案的詳細信息,請參閱SQLServer2005聯(lián)機叢書中的“配置高可用性”和“安裝故障轉移群集前的準備工作”主題。網(wǎng)絡軟件要求SQLServer2005的64位版本的網(wǎng)絡軟件要求與32位版本的網(wǎng)絡軟件要求相同。Windows2003、WindowsXP和Windows2000都具有內置網(wǎng)絡軟件。高等教育“十一五”國家級規(guī)劃教材《數(shù)據(jù)庫與程序設計》山東大學出版社硬件要求(32位)高等教育“十一五”國家級規(guī)劃教材《數(shù)據(jù)庫與程序設計》山東大學出版社說明:如果處理器類型未滿足要求,則系統(tǒng)配置檢查器(SCC)將阻止安裝程序繼續(xù)安裝。如果不滿足最低或建議的處理器速度要求,SCC將向用戶發(fā)出警告但不會阻止。多處理器計算機上將不會出現(xiàn)警告。如果不滿足最低或建議的RAM要求,SCC將向用戶發(fā)出警告但不會阻止。內存要求僅針對本版本,它不反映操作系統(tǒng)的其他內存要求。SCC將在安裝開始時確認內存是否可用。SQLServer2005EvaluationEdition支持的功能集與SQLServer2005EnterpriseEdition的相同。高等教育“十一五”國家級規(guī)劃教材《數(shù)據(jù)庫與程序設計》山東大學出版社硬盤空間要求(32位和64位)在安裝SQLServer2005的過程中,WindowsInstaller將在系統(tǒng)驅動器上創(chuàng)建臨時文件。在運行安裝程序以安裝或升級到SQLServer2005前,請驗證您的系統(tǒng)驅動器上有1.6GB的可用磁盤空間來容納這些文件。即使您將SQLServer組件安裝到非默認驅動器上,此要求同樣適用。高等教育“十一五”國家級規(guī)劃教材《數(shù)據(jù)庫與程序設計》山東大學出版社SQLServer2005各組件對磁盤空間的要求高等教育“十一五”國家級規(guī)劃教材《數(shù)據(jù)庫與程序設計》山東大學出版社不同的版本對操作系統(tǒng)的要求(1)高等教育“十一五”國家級規(guī)劃教材《數(shù)據(jù)庫與程序設計》山東大學出版社不同的版本對操作系統(tǒng)的要求(2)高等教育“十一五”國家級規(guī)劃教材《數(shù)據(jù)庫與程序設計》山東大學出版社不同的版本對操作系統(tǒng)的要求(3)高等教育“十一五”國家級規(guī)劃教材《數(shù)據(jù)庫與程序設計》山東大學出版社不同的版本對操作系統(tǒng)的要求(4)高等教育“十一五”國家級規(guī)劃教材《數(shù)據(jù)庫與程序設計》山東大學出版社1.數(shù)據(jù)庫服務器SQLServer2005的安裝

高等教育“十一五”國家級規(guī)劃教材《數(shù)據(jù)庫與程序設計》山東大學出版社安裝步驟(1)高等教育“十一五”國家級規(guī)劃教材《數(shù)據(jù)庫與程序設計》山東大學出版社安裝步驟(2)高等教育“十一五”國家級規(guī)劃教材《數(shù)據(jù)庫與程序設計》山東大學出版社安裝步驟(4)高等教育“十一五”國家級規(guī)劃教材《數(shù)據(jù)庫與程序設計》山東大學出版社安裝步驟(5)高等教育“十一五”國家級規(guī)劃教材《數(shù)據(jù)庫與程序設計》山東大學出版社安裝步驟(6)高等教育“十一五”國家級規(guī)劃教材《數(shù)據(jù)庫與程序設計》山東大學出版社默認實例默認實例就是用計算機在網(wǎng)絡上的名字來命名的實例。如果應用程序在請求連接SQLServer時只指定了計算機名,則SQLServer客戶端組件將嘗試連接這臺計算機上的數(shù)據(jù)庫引擎默認實例。這保留了與現(xiàn)有SQLServer應用程序的兼容性。一臺計算機上只能有一個默認實例,而默認實例可以是SQLServer的任何版本。高等教育“十一五”國家級規(guī)劃教材《數(shù)據(jù)庫與程序設計》山東大學出版社命名實例命名實例,通過使用計算機在網(wǎng)絡上的名字加上實例名字來進行標識的實例。就是在有了默認實例后,命名其他的實例,就需要再次給安裝的實例命名。這就是命名實例。只有SQLServer2000可以定義為命名實例。多實例:一臺計算機上可以運行多個命名實例,但只有SQLServer2000數(shù)據(jù)庫引擎才可作為命名實例運行。SQLServer早期版本中的數(shù)據(jù)庫引擎不能作為命名實例運行。高等教育“十一五”國家級規(guī)劃教材《數(shù)據(jù)庫與程序設計》山東大學出版社安裝步驟(7)高等教育“十一五”國家級規(guī)劃教材《數(shù)據(jù)庫與程序設計》山東大學出版社輸入密碼選擇“混合模式身份驗證”時,請輸入并確認系統(tǒng)管理員(sa)登錄名。密碼是抵御入侵者的第一道防線,因此設置強密碼對于系統(tǒng)安全是絕對必要的。切勿設置空密碼或弱sa密碼。注意:SQLServer密碼可包含1到128個字符,包括字母、符號和數(shù)字的任意組合。如果選擇“混合模式身份驗證”,則必須輸入強sa密碼才能進入安裝向導的下一頁。高等教育“十一五”國家級規(guī)劃教材《數(shù)據(jù)庫與程序設計》山東大學出版社強密碼強密碼不易被人猜出,也不易用計算機程序攻擊。強密碼不能使用禁止的條件或字詞,包括:空條件或NULL條件,“Password”,“Admin”,“Administrator”,“sa”,“sysadmin”高等教育“十一五”國家級規(guī)劃教材《數(shù)據(jù)庫與程序設計》山東大學出版社強密碼強密碼不能是下列與安裝的計算機有關聯(lián)的詞:當前登錄到計算機上的用戶的名稱。計算機名稱。強密碼長度必須多于8個字符,并且至少要滿足下列四個條件中的三個:必須包含大寫字母。必須包含小寫字母。必須包含數(shù)字。必須包含非字母數(shù)字字符;例如,#、%或^。在“身份驗證模式”頁中輸入的密碼必須滿足強密碼策略要求。如果有使用SQL身份驗證的自動化設置,請確保密碼滿足強密碼策略要求。高等教育“十一五”國家級規(guī)劃教材《數(shù)據(jù)庫與程序設計》山東大學出版社安裝步驟(8)高等教育“十一五”國家級規(guī)劃教材《數(shù)據(jù)庫與程序設計》山東大學出版社安裝步驟(9)高等教育“十一五”國家級規(guī)劃教材《數(shù)據(jù)庫與程序設計》山東大學出版社2.1.3SQLServer2005管理工具

在安裝的“MicrosoftSQLServer2005”程序組中,有兩個重要的工具:“SQLServerManagementStudio”:完成數(shù)據(jù)庫的操作“SQLServerConfigurationManager”:負責數(shù)據(jù)庫服務器的配置高等教育“十一五”國家級規(guī)劃教材《數(shù)據(jù)庫與程序設計》山東大學出版社1.SQLServerManagementStudio工具SQLServerManagementStudio用于通過控制臺完成數(shù)據(jù)庫的操作,即數(shù)據(jù)庫管理,可以通過SQL命令方式來操作數(shù)據(jù)庫。執(zhí)行“SQLServerManagementStudio”,顯示數(shù)據(jù)庫服務器連接界面(如圖2-13所示)高等教育“十一五”國家級規(guī)劃教材《數(shù)據(jù)庫與程序設計》山東大學出版社連接前的數(shù)據(jù)庫管理器高等教育“十一五”國家級規(guī)劃教材《數(shù)據(jù)庫與程序設計》山東大學出版社連接后的數(shù)據(jù)庫管理器高等教育“十一五”國家級規(guī)劃教材《數(shù)據(jù)庫與程序設計》山東大學出版社打開的表示例高等教育“十一五”國家級規(guī)劃教材《數(shù)據(jù)庫與程序設計》山東大學出版社打開的數(shù)據(jù)庫關系圖高等教育“十一五”國家級規(guī)劃教材《數(shù)據(jù)庫與程序設計》山東大學出版社2.SQLServerConfigurationManager高等教育“十一五”國家級規(guī)劃教材《數(shù)據(jù)庫與程序設計》山東大學出版社2.2Transact-SQL語言基礎

2.2.1SQL語言和Transact-SQL語言1.SQL語言簡介SQL全稱為StructuredQueryLanguage,即結構化查詢語言,是關系數(shù)據(jù)庫管理系統(tǒng)的標準語言,用于存取數(shù)據(jù)以及查詢、更新和管理關系數(shù)據(jù)庫系統(tǒng)。高等教育“十一五”國家級規(guī)劃教材《數(shù)據(jù)庫與程序設計》山東大學出版社2.2Transact-SQL語言基礎

1986年美國國家標準局(ANSI)制定了SQL標準文本(簡稱ANSISQL-86)。此后不斷修改、擴充和完善,1992年,國際標準化組織(ISO)發(fā)布了SQL國際標準,稱為SQL-92。ANSI隨之發(fā)布的相應標準是ANSISQL-92。盡管不同的關系數(shù)據(jù)庫使用的SQL版本有一些差異,但大多數(shù)都遵循ANSISQL標準。SQL-2003標準包含了XML(可擴展標記語言)相關內容,自動生成列值;SQL-2006標準定義了SQL與XML(包含XQuery)的關聯(lián)應用。高等教育“十一五”國家級規(guī)劃教材《數(shù)據(jù)庫與程序設計》山東大學出版社2.2Transact-SQL語言基礎

目前,絕大多數(shù)流行的關系型數(shù)據(jù)庫管理系統(tǒng)(如Oracle、Sybase、MicrosoftSQLServer、Access等)都采用了SQL語言標準,使不同數(shù)據(jù)庫系統(tǒng)之間可以相互操作。SQL已成為關系數(shù)據(jù)庫領域中一個主流語言。高等教育“十一五”國家級規(guī)劃教材《數(shù)據(jù)庫與程序設計》山東大學出版社2.2Transact-SQL語言基礎

2.SQL語言的特點(1)綜合統(tǒng)一語言風格統(tǒng)一,是一種一體化的語言,包括數(shù)據(jù)定義、數(shù)據(jù)查詢、數(shù)據(jù)操縱和數(shù)據(jù)控制功能,可以獨立完成數(shù)據(jù)庫的全部操作。

SELECTsno,sname,sdeptFROMstudentWHERE

ssex=N'女'高等教育“十一五”國家級規(guī)劃教材《數(shù)據(jù)庫與程序設計》山東大學出版社2.2Transact-SQL語言基礎

(2)高度非過程化它不要求用戶指定對數(shù)據(jù)的存放方法,也不需要用戶了解具體的數(shù)據(jù)存放方式,即只具體提出“做什么”而無須知道“怎么做”。因此,具有完全不同底層結構的不同數(shù)據(jù)庫系統(tǒng)可以使用相同的SQL語言作為數(shù)據(jù)輸入與管理的接口。(3)面向集合的操作方式核心是查詢,操作對象、查詢結果、更新數(shù)據(jù)均可以是元組的集合。Sno(學號)Sname(姓名)Ssex(性別)Sdept(專業(yè))Szzmm(政治面貌)Sresume(簡歷)Sbirthday(生日期)2005001

張?zhí)m

信管黨員

null

1990-10-10

2005002

王小惠

工商團員null

1991-3-12

2005003

李力

信管團員null

1989-8-18

2005004

胡晨

會計黨員null

1990-1-1

高等教育“十一五”國家級規(guī)劃教材《數(shù)據(jù)庫與程序設計》山東大學出版社2.2Transact-SQL語言基礎

(4)以同一種語法結構提供兩種使用方式SQL既是自含式語言,又是嵌入式語言。SQL作為自含式語言,能夠獨立地用于聯(lián)機交互的使用方式直接操作。作為嵌入式語言,SQL語句可以嵌入到如VB、PB等的前端開發(fā)平臺上,利用前端工具的計算能力和SQL的數(shù)據(jù)庫操縱能力,可以快速地建立數(shù)據(jù)庫應用程序。(5)語言簡潔,易學易用SQL語言類似于人類的自然語言,即接近英語,只用幾個英文單詞的組合就能完成所有功能。高等教育“十一五”國家級規(guī)劃教材《數(shù)據(jù)庫與程序設計》山東大學出版社2.2Transact-SQL語言基礎

3.SQL語言的構成SQL語言包含三部分:(1)數(shù)據(jù)定義語言(DataDefinitionLanguage,DDL):用于定義關系數(shù)據(jù)庫的模式、外模式和內模式,以實現(xiàn)對數(shù)據(jù)庫、基本表、視圖及索引文件的定義、修改和刪除等操作。最常用的DDL語句是:CREATE語句,創(chuàng)建數(shù)據(jù)庫對象結構DROP語句,刪除數(shù)據(jù)庫對象ALTER語句,修改數(shù)據(jù)庫對象結構高等教育“十一五”國家級規(guī)劃教材《數(shù)據(jù)庫與程序設計》山東大學出版社2.2Transact-SQL語言基礎

(2)數(shù)據(jù)操作語言(DataManipulationLanguage,DML):用于完成數(shù)據(jù)查詢和數(shù)據(jù)更新操作。其中數(shù)據(jù)更新指對數(shù)據(jù)進行插入、刪除和修改操作。最常使用的DML語句是:SELECT語句,查詢數(shù)據(jù)INSERT語句,添加數(shù)據(jù)UPDATE語句,修改數(shù)據(jù)DELETE語句,刪除數(shù)據(jù)高等教育“十一五”國家級規(guī)劃教材《數(shù)據(jù)庫與程序設計》山東大學出版社2.2Transact-SQL語言基礎

(3)數(shù)據(jù)控制語言(DataControlLanguage,DCL):用于控制對數(shù)據(jù)庫的訪問,服務器的關閉、啟動等操作。常使用的DCL命令有:GRANT語句,允許對象的創(chuàng)建者給某用戶或某組或所有用戶(PUBLIC)某些特定的權限REVOKE語句,廢除某用戶或某組或所有用戶訪問權限;COMMIT語句,提交當前事務ROLLBACK語句,即“回滾”,刪除由一個或多個部分完成的事務執(zhí)行的更新。為在應用程序、數(shù)據(jù)庫或系統(tǒng)錯誤后還原數(shù)據(jù)庫的完整性,需要使用回滾。高等教育“十一五”國家級規(guī)劃教材《數(shù)據(jù)庫與程序設計》山東大學出版社2.2Transact-SQL語言基礎

4.Transact-SQL語言簡介Transact-SQL語言即T-SQL,是微軟公司遵循ANSISQL-92標準在MicrosoftSQLServer系統(tǒng)中使用的語言。在SQL的基礎上擴展,通過SQLServer的數(shù)據(jù)引擎來分析和運行。它是使用SQLServer的核心,通過它,可以定義變量、使用流控制語句、自定義函數(shù)、自定義存儲過程等,并且與SQLServer實例通信的所有應用程序都通過將Transact-SQL語句發(fā)送到服務器來實現(xiàn)的。高等教育“十一五”國家級規(guī)劃教材《數(shù)據(jù)庫與程序設計》山東大學出版社2.2Transact-SQL語言基礎

在MicrosoftSQLServer2005系統(tǒng)中,根據(jù)Transact-SQL語言的功能特點,把Transact-SQL語言分成5部分:數(shù)據(jù)定義語言數(shù)據(jù)操縱語言數(shù)據(jù)控制語言事務管理語言附加的語言元素高等教育“十一五”國家級規(guī)劃教材《數(shù)據(jù)庫與程序設計》山東大學出版社2.2Transact-SQL語言基礎

(1)數(shù)據(jù)定義語言(DDL)用于定義和管理數(shù)據(jù)庫以及數(shù)據(jù)庫中各種對象,主要包括CREATE語句、ALTER語句、DROP語句。在SQLServer中,數(shù)據(jù)庫對象包括表、視圖、觸發(fā)器、存儲過程、規(guī)則、默認、索引、函數(shù)、用戶自定義的數(shù)據(jù)類型等。這些對象的創(chuàng)建、修改和刪除等都可以通過使用CREATE、ALTER、DROP等Transact-SQL語句來完成。DDL還包括安全保密定義,如口令、級別、存取權限等。高等教育“十一五”國家級規(guī)劃教材《數(shù)據(jù)庫與程序設計》山東大學出版社2.2Transact-SQL語言基礎

(2)數(shù)據(jù)操縱語言(DML)實現(xiàn)對數(shù)據(jù)庫中數(shù)據(jù)的基本操作,如查詢、插入、修改和刪除,主要包括SELECT、INSERT、UPDATE、DELETE等語句。(3)數(shù)據(jù)控制語言(DCL)實現(xiàn)有關安全管理的操作,用來設置或更改數(shù)據(jù)庫用戶或角色權限,主要包括GRANT、REVOKE和DENY等語句。(4)事務管理語言(TML)用來管理顯式事務,主要包括BEGINTRANSACTION、COMMITTRANSACTION、ROLLBACKTRANSACTION等語句。高等教育“十一五”國家級規(guī)劃教材《數(shù)據(jù)庫與程序設計》山東大學出版社2.2Transact-SQL語言基礎

(5)Transact-SQL語言的附加語言元素標識符(對象的名字)數(shù)據(jù)類型變量和常量運算符表達式函數(shù)控制流語言錯誤處理語言注釋等高等教育“十一五”國家級規(guī)劃教材《數(shù)據(jù)庫與程序設計》山東大學出版社2.2Transact-SQL語言基礎

2.2.2T-SQL語句的功能及語法規(guī)定1.T-SQL語句的功能在數(shù)據(jù)庫上執(zhí)行的大部分工作都由SQL語句完成。在程序中,可以組織SQL語句發(fā)送給數(shù)據(jù)庫,數(shù)據(jù)庫再執(zhí)行相應的操作。主要功能:①創(chuàng)建數(shù)據(jù)庫及數(shù)據(jù)庫對象②操縱數(shù)據(jù)③控制程序流程④定義變量⑤控制事務處理⑥安全管理第3章高等教育“十一五”國家級規(guī)劃教材《數(shù)據(jù)庫與程序設計》山東大學出版社2.2Transact-SQL語言基礎

2.T-SQL語句的語法規(guī)定每個T-SQL語句都有固定的格式,用戶必須按相應的格式和語法規(guī)則使用,否則系統(tǒng)無法識別,認為是錯誤的。例:ALTERTABLE語句語法格式,見P42。P43表2-1,給出了Transact-SQL語句一般格式描述中使用的約定,并進行了說明。高等教育“十一五”國家級規(guī)劃教材《數(shù)據(jù)庫與程序設計》山東大學出版社2.2Transact-SQL語言基礎

【例3-12】將course表的cname列寬度改為50。ALTERTABLEcourseALTERCOLUMNcnamenvarchar(50)【例3-13】給course表添加一列。ALTERTABLEcourse

ADDpre_cnonvarchar(3)NULL【例3-14】刪除student表中l(wèi)s列(假設已建立)。ALTERTABLEstudent

DROPCOLUMNls修改列添加列刪除列高等教育“十一五”國家級規(guī)劃教材《數(shù)據(jù)庫與程序設計》山東大學出版社2.2Transact-SQL語言基礎

【例3-26】將sc_2008002表的sno列設為主鍵。ALTERTABLEsc_2008002

ADDCONSTRAINTPK_sno_cnoPRIMARYKEY(sno,cno)【例3-29】將sc_2008002表的cno列設為外鍵。

ALTERTABLEsc_2008002

ADDCONSTRAINTFK_sc_2008002_cnoFOREIGNKEY(cno)REFERENCEScourse(cno)【例3-30】將sc_2008002表的cno列的外鍵約束刪除。ALTERTABLEsc_2008002

DROPCONSTRAINTFK_sc_2008002_cno添加主鍵約束添加外鍵約束刪除約束高等教育“十一五”國家級規(guī)劃教材《數(shù)據(jù)庫與程序設計》山東大學出版社2.2Transact-SQL語言基礎

在T-SQL語句格式描述中,對數(shù)據(jù)庫對象名的Transact-SQL引用一般是由四部分組成的名稱,其格式如下:server_name.[database_name].[schema_name].object_name(服務器名.數(shù)據(jù)庫名.架構名.對象名)|database_name.[schema_name].object_name|schema_name.object_name|object_name高等教育“十一五”國家級規(guī)劃教材《數(shù)據(jù)庫與程序設計》山東大學出版社2.2Transact-SQL語言基礎

其中:server_name:指定鏈接的服務器名稱或遠程服務器名稱;database_name:如果對象駐留在SQLServer的本地實例(數(shù)據(jù)庫引擎)中,則指定SQLServer數(shù)據(jù)庫的名稱;如果對象在鏈接服務器中,則database_name

將指定OLEDB目錄。schema_name:如果對象在SQLServer數(shù)據(jù)庫中,則指定包含對象的架構的名稱。如果對象在鏈接服務器中,則schema_name

將指定OLEDB架構名稱。架構是一組數(shù)據(jù)庫對象的集合,它被單個負責人(可以是用戶或角色)所擁有并構成唯一命名空間。你可以將架構看成是對象的容器。object_name:對象的名稱。高等教育“十一五”國家級規(guī)劃教材《數(shù)據(jù)庫與程序設計》山東大學出版社2.2Transact-SQL語言基礎

表2-2對象名引用的有效格式對象引用格式說明server.database.schema.object四個部分的名稱。server.database..object省略架構名稱。server..schema.object省略數(shù)據(jù)庫名稱。server...object省略數(shù)據(jù)庫和架構名稱。database.schema.object省略服務器名。database..object省略服務器和架構名稱。schema.object省略服務器和數(shù)據(jù)庫名稱。object省略服務器、數(shù)據(jù)庫和架構名稱。高等教育“十一五”國家級規(guī)劃教材《數(shù)據(jù)庫與程序設計》山東大學出版社2.2Transact-SQL語言基礎

對T-SQL語句的語法格式主要有以下規(guī)定:(1)語句中的字母大不區(qū)分大小寫(除了字符串中)(2)關鍵字(保留字)有特殊用途,不得使用標識符。如,DROP、ALTER等(3)語句中的日期型常量和字符型常量必須用單引號括起來。如,'2008002'(4)語句中的標點符號必須用英文標點,即半角符號如:,''()等。(5)一條語句可以分行寫,一行也可以寫多條語句。高等教育“十一五”國家級規(guī)劃教材《數(shù)據(jù)庫與程序設計》山東大學出版社2.2Transact-SQL語言基礎

3.簡單輸出語句數(shù)據(jù)的簡單輸出主要使用PRINT語句或通過SELECT語句無源查詢來實現(xiàn)。(1)PRINT語句PRINT

常量

|

@局部變量

|

表達式|

函數(shù)

說明:PRINT語句一次只能輸出一個常量或一個局部變量值或一個表達式的值。例如:PRINT369+2PRINTSIN(2)高等教育“十一五”國家級規(guī)劃教材《數(shù)據(jù)庫與程序設計》山東大學出版社2.2Transact-SQL語言基礎

(2)SELECT語句無源查詢SELECT語句無源查詢用來查詢不在表中的數(shù)據(jù),起到了數(shù)據(jù)簡單輸出的作用。語法格式如下:SELECT

常量

|變量

|函數(shù)

|表達式

[as

別名][,…n]說明:SELECT語句無源查詢一次可以輸出若干個表達式的值,數(shù)據(jù)以列方式輸出,每一列可起一個列別名。[as別名]:用于為列指定別名(別名通常用單引號括起來)。[,…n]:表示可以同時輸出多個表達式的值。例如:SELECT369AS‘A1’,369+2AS‘A2’SELECT369ASB1,369+2ASB2高等教育“十一五”國家級規(guī)劃教材《數(shù)據(jù)庫與程序設計》山東大學出版社2.2Transact-SQL語言基礎

2.2.3T-SQL的標識符數(shù)據(jù)庫對象的名稱稱為其標識符。MicrosoftSQLServer2005中的服務器、數(shù)據(jù)庫和數(shù)據(jù)庫對象(例如表、視圖、列、索引、觸發(fā)器、過程、約束及規(guī)則等)都可以有標識符。大多數(shù)對象要求有標識符,例如創(chuàng)建視圖時必須定義表的標識符。但有些對象的標識符是可選的,例如,在管理器中創(chuàng)建約束時其標識符由系統(tǒng)自動生成,用戶不必給出。(管理器中系統(tǒng)會默認給出,T-SQL語句中要定義)對象標識符是在定義對象時創(chuàng)建的。標識符隨后用于引用該對象。

高等教育“十一五”國家級規(guī)劃教材《數(shù)據(jù)庫與程序設計》山東大學出版社2.2Transact-SQL語言基礎

例如,下列語句創(chuàng)建一個標識符為sc的表,該表中有三列的標識符分別是sno、cno和grade:CREATETABLE

sc(snonvarchar(7)NOTNULLFOREIGNKEYREFERENCESstudent(sno),

cnonvarchar(3)NOTNULLFOREIGNKEYREFERENCEScourse(cno),

gradedecimal(4,1)NOTNULLCHECK(grade>0),CONSTRAINTc1PRIMARYKEY(sno,cno))創(chuàng)建(定義)標識符引用標示符高等教育“十一五”國家級規(guī)劃教材《數(shù)據(jù)庫與程序設計》山東大學出版社2.2Transact-SQL語言基礎

1.常規(guī)標識符(重點)常規(guī)標識符是嚴格按照標識符的格式規(guī)則定義的,在T-SQL語句中使用時不用將其分隔開的標識符。例如上例中的表的標識符sc。常規(guī)標識符格式規(guī)則:(1)第一個字符必須是下列字符之一:Unicode標準3.2所定義的字母,包括拉丁字符a-z和A-Z,以及來自其他語言的字母字符。下劃線(_)、at符號(@)或數(shù)字符號(#)。T-SQL語言規(guī)定了兩類標識符:常規(guī)標識符和分隔標識符(用戶自定義的標識符)高等教育“十一五”國家級規(guī)劃教材《數(shù)據(jù)庫與程序設計》山東大學出版社補充知識:UnicodeUnicode(統(tǒng)一碼、萬國碼、單一碼)是一種在計算機上使用的字符編碼。Unicode是為了解決傳統(tǒng)的字符編碼方案的局限(不兼容、亂碼)而產生的,它為每種語言中的每個字符設定了統(tǒng)一并且唯一的二進制編碼,以滿足跨語言、跨平臺進行文本轉換、處理的要求。采用UNICODE編碼

,計算機存放字符串時,實際存放每個字符在UNICODE字符集中的序號。目前計算機一般使用2個字節(jié)(16位)來存放一個序號。因此,這種方式存放的字符也被稱作寬字節(jié)字符。比如,字符串“中文123”在Windows2000下,內存中實際存放的是5個序號,共10字節(jié):2D4E87653100320033000000

←在x86CPU中,低字節(jié)在前中文123\0高等教育“十一五”國家級規(guī)劃教材《數(shù)據(jù)庫與程序設計》山東大學出版社2.2Transact-SQL語言基礎

特別要注意的是,在SQLServer中,某些位于標識符開頭位置的符號具有特殊意義,不要作為其他對象的標識符。以一個at符號(@)開頭的常規(guī)標識符始終表示局部變量或參數(shù)以一個數(shù)字符號(#)開頭的標識符表示臨時表或過程;以兩個數(shù)字符號(##)開頭的標識符表示全局臨時對象。某些Transact-SQL函數(shù)的名稱以兩個at符號(@@)開頭;全局變量也是以兩個at符號(@@)開頭。高等教育“十一五”國家級規(guī)劃教材《數(shù)據(jù)庫與程序設計》山東大學出版社2.2Transact-SQL語言基礎

(2)后續(xù)字符(從第2個字符開始)可以包括:Unicode標準3.2中所定義的字母;十進制數(shù)字;at符號(@)、美元符號($)、數(shù)字符號(#)或下劃線。(3)T-SQL保留字(如,PRINT、DROP)不能作為(自定義)常規(guī)標識符。SQLServer中保留字可以大寫也可以小寫。(4)不允許嵌入空格或其他特殊字符。高等教育“十一五”國家級規(guī)劃教材《數(shù)據(jù)庫與程序設計》山東大學出版社2.2Transact-SQL語言基礎

(5)不允許使用增補字符。(6)變量名稱和存儲過程參數(shù)名稱必須符合常規(guī)標識符的規(guī)則。(7)常規(guī)標識符包含的字符數(shù)必須在1~128之間。對于本地臨時表,標識符最多可以有116個字符。(8)標識符中字母不區(qū)分大小寫。另外,定義標識符最好“見名識意”。如,name、birthday、pk_course_cno高等教育“十一五”國家級規(guī)劃教材《數(shù)據(jù)庫與程序設計》山東大學出版社2.2Transact-SQL語言基礎

2.分隔標識符(了解)在Transact-SQL語句中使用標識符時,不符合常規(guī)表述格式規(guī)則的標識符必須由分隔符雙引號(“)或者方括號([])括起來,稱為分隔標識符。例如,在下面的SELECT語句中表的標示符MyTable有空格,不是常規(guī)標示符,所以用方括號括起來。SELECT*FROM[MyTable]WHERE[order]=10高等教育“十一五”國家級規(guī)劃教材《數(shù)據(jù)庫與程序設計》山東大學出版社2.2Transact-SQL語言基礎

注意:

單引號只用于包含字符串,不能用于分隔標識符。如果QUOTED_IDENTIFIER設為OFF(默認ON),則:(1)只能用括號([])用作分隔符(不能用引號)。(2)字符串用單引號、雙引號均可。如,"北京"與'北京'等價。高等教育“十一五”國家級規(guī)劃教材《數(shù)據(jù)庫與程序設計》山東大學出版社2.2Transact-SQL語言基礎

常規(guī)標識符可以使用分隔符,也可以不使用分隔符。不符合常規(guī)標識符格式規(guī)則的標識符必須使用分隔符。分隔符僅用于標識符。分隔符不能用于關鍵字(保留字)。分隔標識符的格式規(guī)則要求如下:(1)帶分隔符的標識符可以包含1~128個字符(不包括分隔符字符本身)。本地臨時表標識符最多可以包含116個字符。(2)標識符的主體可以包含當前代碼頁內字符(分隔符本身除外)的任意組合。例如,帶分隔符的標識符可以包含空格、常規(guī)標識符有效的任何字符以及表2-3中的任一字符。高等教育“十一五”國家級規(guī)劃教材《數(shù)據(jù)庫與程序設計》山東大學出版社2.2Transact-SQL語言基礎

代字號~連字符-驚嘆號!左括號{百分號%右括號}插入號^撇號'“與”符號&句點.左圓括號(反斜杠\右圓括號)重音符號

`高等教育“十一五”國家級規(guī)劃教材《數(shù)據(jù)庫與程序設計》山東大學出版社2.2Transact-SQL語言基礎

2.2.4T-SQL的數(shù)據(jù)類型數(shù)據(jù)類型即數(shù)據(jù)形式,就是數(shù)據(jù)的存儲形式和操作使用方式。如:整數(shù)數(shù)據(jù)、字符數(shù)據(jù)、貨幣數(shù)據(jù)、日期和時間數(shù)據(jù)、二進制字符串等。在SQLServer中,每個列、局部變量、表達式和參數(shù)都具有一個相關的數(shù)據(jù)類型。SQLServer2005提供了7類共29種系統(tǒng)數(shù)據(jù)類型,同時還允許用戶基于系統(tǒng)提供的數(shù)據(jù)類型使用Transact-SQL或Microsoft.NETFramework定義自己的數(shù)據(jù)類型。高等教育“十一五”國家級規(guī)劃教材《數(shù)據(jù)庫與程序設計》山東大學出版社2.2Transact-SQL語言基礎

SQLServer2005提供的7大類系統(tǒng)數(shù)據(jù)類型為:精確數(shù)字類:bigint、int、smallint、tinyint、money、smallmoney、decimal、numeric、bit等9種數(shù)據(jù)類型。近似數(shù)字類:float和real等2種數(shù)據(jù)類型。日期和時間類:datetime、smalldatetime2種數(shù)據(jù)類型。字符類:char、text、varchar等3種數(shù)據(jù)類型。Unicode字符串類:nchar、ntext、nvarchar等3種數(shù)據(jù)類型。

二進制字符串:binary、image、varbinary等3種數(shù)據(jù)類型。其他數(shù)據(jù)類型:cursor、timestamp、sql_variant、uniqueidentifier、table、xml等6種數(shù)據(jù)類型。(不要求)重點高等教育“十一五”國家級規(guī)劃教材《數(shù)據(jù)庫與程序設計》山東大學出版社2.2Transact-SQL語言基礎

在SQLServer2005中,根據(jù)其存儲特征,某些數(shù)據(jù)類型被指定為屬于下列各組:大值數(shù)據(jù)類型:varchar(max)、nvarchar(max)和varbinary(max)大型對象數(shù)據(jù)類型:text、ntext、image、varchar(max)、nvarchar(max)、varbinary(max)和xml高等教育“十一五”國家級規(guī)劃教材《數(shù)據(jù)庫與程序設計》山東大學出版社2.2Transact-SQL語言基礎

一般,兩個相同類型的數(shù)據(jù)進行運算。當兩個具有不同數(shù)據(jù)類型的表達式通過運算符進行組合時,結果的特征遵循以下原則:結果的數(shù)據(jù)類型是通過將數(shù)據(jù)類型的優(yōu)先順序規(guī)則應用到輸入表達式的數(shù)據(jù)類型來確定的。參閱數(shù)據(jù)類型優(yōu)先級(T-SQL)。結果數(shù)據(jù)類型為char、varchar、text、nchar、nvarchar或ntext時,結果的排序規(guī)則由排序規(guī)則的優(yōu)先順序規(guī)則確定。結果的精度、小數(shù)位數(shù)及長度取決于輸入表達式的精度、小數(shù)位數(shù)及長度。SQLServer2005提供了數(shù)據(jù)類型同義詞(架構名)以保持SQL-92兼容性。運算及排序規(guī)則后面介紹高等教育“十一五”國家級規(guī)劃教材《數(shù)據(jù)庫與程序設計》山東大學出版社2.2Transact-SQL語言基礎

1.整型數(shù)據(jù)類型整型數(shù)據(jù)類型用于表示整數(shù)的數(shù)據(jù)。包括:Bigint、int、smallint、tinyint、bit數(shù)據(jù)類型取值范圍存儲bigint-2^63(-9,223,372,036,854,775,808)到2^63-1(9,223,372,036,854,775,807)8字節(jié)(固定長度)int-2^31(-2,147,483,648)到2^31-1(2,147,483,647)4字節(jié)(固定長度)smallint-2^15(-32,768)到2^15-1(32,767)2字節(jié)(固定長度)tinyint0到2551字節(jié)(固定長度)bit可以取值為1、0或NULL的整數(shù)數(shù)據(jù)類型*表2-4整型數(shù)據(jù)類型的數(shù)據(jù)特征高等教育“十一五”國家級規(guī)劃教材《數(shù)據(jù)庫與程序設計》山東大學出版社2.2Transact-SQL語言基礎

bit是一種嚴格的數(shù)字類型,但是從編程人員的觀點,它更多的是一種“其他”類型,因為它最通常被用于表示布爾值。SQLServer允許使用True和False分別作為表示1和0的符號。字符串值TRUE和FALSE可以轉換為以下bit值:TRUE轉換為1,F(xiàn)ALSE轉換為0。高等教育“十一五”國家級規(guī)劃教材《數(shù)據(jù)庫與程序設計》山東大學出版社2.2Transact-SQL語言基礎

2.貨幣數(shù)據(jù)類型貨幣數(shù)據(jù)類型專門用于處理貨幣,由整數(shù)部分和小數(shù)部分組成。SQLServer提供了兩種貨幣類型:Money、smallmoney貨幣數(shù)據(jù)類型數(shù)據(jù)最多可以包含4位小數(shù),即精確到貨幣的萬分之一。若數(shù)據(jù)的小數(shù)位超過4位,會自動進行四舍五入。數(shù)據(jù)類型取值范圍存儲money-922,337,203,685,477.5808到922,337,203,685,477.58078字節(jié)(固定長度)smallmoney-214,748.3648到214,748.36474字節(jié)(固定長度)表2-5貨幣數(shù)據(jù)類型的數(shù)據(jù)特征高等教育“十一五”國家級規(guī)劃教材《數(shù)據(jù)庫與程序設計》山東大學出版社2.2Transact-SQL語言基礎

3.精確小數(shù)數(shù)據(jù)類型精確小數(shù)數(shù)據(jù)類型的數(shù)據(jù)是帶固定精度和小數(shù)位數(shù)的數(shù)值。包括兩種類型:Decimal、numeric在定義時需要確定精度和小數(shù)位數(shù),其格式如下:

decimal[(p[,s])]和numeric[(p[,s])]高等教育“十一五”國家級規(guī)劃教材《數(shù)據(jù)庫與程序設計》山東大學出版社2.2Transact-SQL語言基礎

P:精度,存儲除小數(shù)點外十進制數(shù)字整數(shù)部分和小數(shù)部分的總位數(shù)。該精度必須是1到38之間的值。默認精度為18。S:小數(shù)位數(shù),默認小數(shù)位數(shù)為0。僅在指定精度后才可以指定小數(shù)位數(shù),因此,0<=s<=p。例如:decimal、decimal(10)、numeric(10,2)精確小數(shù)數(shù)據(jù)類型的數(shù)據(jù)最大存儲大小基于精度而變化,見表2-6。精度存儲字節(jié)數(shù)1-9510-19920-281329-3817高等教育“十一五”國家級規(guī)劃教材《數(shù)據(jù)庫與程序設計》山東大學出版社2.2Transact-SQL語言基礎

4.近似數(shù)數(shù)據(jù)類型(了解)近似數(shù)數(shù)據(jù)類型是用于表示浮點數(shù)值數(shù)據(jù)的大值(或小值)數(shù)值數(shù)據(jù)類型。包括兩種:Float、real浮點數(shù)值數(shù)據(jù)即用科學記數(shù)法表示數(shù)據(jù),能夠存儲范圍更大的數(shù)值數(shù)據(jù),但有時不能精確存儲。因為浮點型數(shù)據(jù)的精度不能自行設置,若超出了精度范圍,能夠存儲,但有誤差。高等教育“十一五”國家級規(guī)劃教材《數(shù)據(jù)庫與程序設計》山東大學出版社2.2Transact-SQL語言基礎

float類型的數(shù)據(jù)在定義時需要確定其尾數(shù),格式為:

float[(n)]n為用于存儲float數(shù)值尾數(shù)的位數(shù),以科學記數(shù)法表示,因此可以確定精度和存儲大?。ㄒ娤卤恚?。n必須是介于1~53之間的某個值。n的默認值為53。例如:float、float(6)數(shù)據(jù)類型范圍存儲float-1.79E+308至-2.23E-308、0以及2.23E-308至1.79E+308取決于n的值,n為1-24時4字節(jié);n為25-53時8字節(jié)real-3.40E+38至-1.18E-38、0以及1.18E-38至3.40E+384字節(jié)(固定長度)高等教育“十一五”國家級規(guī)劃教材《數(shù)據(jù)庫與程序設計》山東大學出版社2.2Transact-SQL語言基礎

5.日期和時間數(shù)據(jù)類型日期和時間數(shù)據(jù)類型是用于表示某天的日期和時間數(shù)據(jù)的類型,包括兩種類型:Datetime、smalldatetime注意:日期時間型數(shù)據(jù)的默認顯示格式“年-月-日小時:分鐘:秒”。輸入日期和時間數(shù)據(jù)類型的數(shù)據(jù)時,若省略日期,則默認為當前日期;若省略時間,默認為0:00:00。輸入日期時,年、月、日之間除了使用“-”作為分隔符,還可用“/”或“.”分開。高等教育“十一五”國家級規(guī)劃教材《數(shù)據(jù)庫與程序設計》山東大學出版社2.2Transact-SQL語言基礎

SQLServer2005用兩個4字節(jié)(8字節(jié))的整數(shù)內部存儲datetime數(shù)據(jù)類型的值。第一個4字節(jié)存儲“基礎日期”(即1900年1月1日)之前或之后的天數(shù)?;A日期是系統(tǒng)參照日期。另外一個4字節(jié)存儲天的時間,以午夜后經(jīng)過的1/300秒數(shù)表示。smalldatetime數(shù)據(jù)精確度低于datetime。數(shù)據(jù)庫引擎將smalldatetime值存儲為兩個2字節(jié)(4字節(jié))的整數(shù)。第一個2字節(jié)存儲1900年1月1日后的天數(shù)。另外一個2字節(jié)存儲午夜后經(jīng)過的分鐘數(shù)。高等教育“十一五”國家級規(guī)劃教材《數(shù)據(jù)庫與程序設計》山東大學出版社2.2Transact-SQL語言基礎

表2-9日期和時間數(shù)據(jù)類型數(shù)據(jù)的取值范圍和精確度數(shù)據(jù)類型范圍精確度datetime1753年1月1日到9999年12月31日3.33毫秒smalldatetime1900年1月1日到2079年6月6日1分鐘高等教育“十一五”國家級規(guī)劃教材《數(shù)據(jù)庫與程序設計》山東大學出版社2.2Transact-SQL語言基礎

6.字符串數(shù)據(jù)類型字符串數(shù)據(jù)類型是用于表示字符串數(shù)據(jù)的。字符串數(shù)據(jù)類型包括3類:Unicode字符串數(shù)據(jù)類型、非Unicode字符串數(shù)據(jù)類型、二進制字符串數(shù)據(jù)類型高等教育“十一五”國家級規(guī)劃教材《數(shù)據(jù)庫與程序設計》山東大學出版社2.2Transact-SQL語言基礎

(1)非Unicode字符串數(shù)據(jù)類型非Unicode字符串包括三種類型:char、varchar、text①char類型char類型的數(shù)據(jù)是固定長度的非Unicode字符數(shù)據(jù),長度為n個字節(jié)。定義格式為:

char[(n)]n的取值范圍為1~8000,存儲大小是n個字節(jié)(每個字符占一個字節(jié))。未指定n,則默認為1。例如:char、char(12)

高等教育“十一五”國家級規(guī)劃教材《數(shù)據(jù)庫與程序設計》山東大學出版社2.2Transact-SQL語言基礎

②varchar類型varchar類型的數(shù)據(jù)是可變長度的非Unicode字符數(shù)據(jù)。其語法格式為:

varchar[(n|max)]n的取值范圍為1~8000,max指示最大存儲大小是2^31-1個字節(jié)。存儲大小是輸入數(shù)據(jù)的實際長度加2個字節(jié)。輸入數(shù)據(jù)的長度可以為0個字符。未指定n時,則默認為1。如果在使用CAST和CONVERT函數(shù)(數(shù)據(jù)類型轉換函數(shù))時未指定n,則默認長度為30。例如:varchar、varchar(18)高等教育“十一五”國家級規(guī)劃教材《數(shù)據(jù)庫與程序設計》山東大學出版社2.2Transact-SQL語言基礎

如果使用char或varchar,建議執(zhí)行以下操作:如果列數(shù)據(jù)項的大小一致,則使用char。如果列數(shù)據(jù)項的大小差異相當大,則使用varchar。如果列數(shù)據(jù)項大小相差很大,而且大小可能超過8,000字節(jié),請使用varchar(max)。當排序規(guī)則代碼頁使用雙字節(jié)字符時,存儲大小仍然為n個字節(jié)。根據(jù)字符串的不同,n個字節(jié)的存儲大小可能小于n個字符。如果站點支持多語言,請考慮使用Unicode的nchar或nvarchar數(shù)據(jù)類型,以最大限度地消除字符轉換問題。高等教育“十一五”國家級規(guī)劃教材《數(shù)據(jù)庫與程序設計》山東大學出版社2.2Transact-SQL語言基礎

③text類型text數(shù)據(jù)類

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論