




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、SQL Server2005 數(shù)據(jù)庫技術及應用第6章 SQL SERVER 命名規(guī)則及SQL Server的數(shù)據(jù)類型 6.1 SQL Server命名規(guī)則6.2 SQL Server的數(shù)據(jù)類型SQL Server 20056.1 SQL Server命名規(guī)則 6.1.1標識符的分類SQL Server的所有對象,例如服務器名、數(shù)據(jù)庫名、表名、常量、變量等都可以有一個標識符。對絕大多數(shù)對象來說,標識符是必不可少的。SQL Server一共規(guī)定了兩種類型的標識符:一種是規(guī)則標識符,一種是界定標識符。規(guī)則標識符規(guī)則標識符嚴格遵守標識符有關格式的規(guī)定。所以在T-SQL語句中凡是規(guī)則標識符都不必使用界定
2、符,如和“”來進行限定。界定標識符 界定標識符是指使用了和“”等界定符號來進行位置限定的標識符。如果數(shù)據(jù)庫對象的標識符不符合命名規(guī)則,則必須使用界定標識符來加以限定。 SQL Server 20056.1 SQL Server命名規(guī)則 【例6.1】從表123(假設存在這張表)中查詢所有信息。SELECT * FROM 123在上例中表123違反了命名規(guī)則中第3條規(guī)定,所以必須加界定標識符加以限定。否則運行時編譯器會返回如下錯誤信息:服務器: 消息 170,級別 15,狀態(tài) 1,行 1第 1 行: 123 附近有語法錯誤。 SQL Server 20056.2SQL Server的數(shù)據(jù)類型 6.
3、2.1整數(shù)數(shù)據(jù)類型整型數(shù)據(jù)類型提供存儲精確數(shù)字值的方法。以整數(shù)數(shù)據(jù)類型存儲的數(shù)總是占用相同比例的存儲空間。整數(shù)數(shù)據(jù)類型分為以下5類。Bit:稱為位數(shù)據(jù)類型,其數(shù)據(jù)有兩種取值:0和1,長度為1字節(jié)。為了優(yōu)化存儲空間,SQL Server在存儲bit型數(shù)據(jù)時進行了優(yōu)化,18個bit型數(shù)據(jù)占用1個字節(jié)空間,116個bit型數(shù)據(jù)占用2個字節(jié)空間,依次類推。 SQL Server 20056.2SQL Server的數(shù)據(jù)類型 Bigint:用于存儲從-263(-9,223,372,036,854,775,807)到263-1(9,223,372,036,854,775,807)之間的所有正負整數(shù),一共占
4、用8個字節(jié)。int(integer):int(或integer)數(shù)據(jù)類型可以存儲從-231(-2,147,483,648)到231-1(2,147,483,647)范圍之間的所有正負整數(shù)。以int整數(shù)類型存儲的每個值占用4個字節(jié),共32位,其中31位用作存儲數(shù)字,1位用于表示正負。Smallint:可以存儲從-215(-32,768)到215-1范圍之間的所有正負整數(shù)。以Smallint數(shù)據(jù)類型存儲的每個值占用2個字節(jié),共16位,其中15位用作存儲數(shù)字,1位用于表示正負。Tinyint:可以存儲從0到255范圍之間的所有正整數(shù)。以Tinyint數(shù)據(jù)類型存儲的每個值占用1個字節(jié)。 整數(shù)型數(shù)據(jù)可以
5、在較少的字節(jié)里存儲較大的精確數(shù)字,而且存儲結構的效率很高。所以,平時在選用數(shù)字類型時,應盡量選用整數(shù)數(shù)據(jù)類型。 SQL Server 20056.2SQL Server的數(shù)據(jù)類型 6.2.2貨幣型數(shù)據(jù)貨幣數(shù)據(jù)類型專門用于貨幣數(shù)據(jù)處理,有以下2種類型。Money:用于存儲貨幣值,存儲在money數(shù)據(jù)類型中的數(shù)值以一個正數(shù)部分和一個小數(shù)部分存儲在兩個4字節(jié)的整型值中,存儲范圍為-922337213685477.5808到922337213685477.5808,精度為貨幣單位的萬分之一。Smallmoney:與money數(shù)據(jù)類型類似,但其存儲的貨幣值范圍比money數(shù)據(jù)類型小,其存儲范圍為-214
6、748.3468到214748.3467。 SQL Server 20056.2SQL Server的數(shù)據(jù)類型 6.2.3數(shù)字數(shù)據(jù)類型數(shù)字數(shù)據(jù)類型數(shù)據(jù)包括Decimal和numeric:Decimal數(shù)據(jù)類型和numeric數(shù)據(jù)類型完全相同。它們可以提供小數(shù)所需要的實際存儲空間,但也有一定的限制,可以用2到17個字節(jié)來存儲從-1038-1到1038-1之間的數(shù)值。但是兩者也有區(qū)別,在表格中,只有numeric型的數(shù)據(jù)可以帶有identity關鍵字的列,decimal可以簡寫為dec。 聲明數(shù)字數(shù)據(jù)類型的數(shù)據(jù)格式是numeric(p,s)或者decimal(p,s),其中p為精度,s為小數(shù)位數(shù),
7、s的默認值為0。比如,25.423對應的數(shù)據(jù)類型為數(shù)字數(shù)據(jù)類型時,聲明為decimal(5,3)。 SQL Server 20056.2SQL Server的數(shù)據(jù)類型 6.2.4浮點數(shù)據(jù)類型浮點數(shù)據(jù)類型用于存儲十進制小數(shù)。浮點數(shù)值的數(shù)據(jù)在SQL Server中采用只入不舍的方式進行存儲,浮點數(shù)據(jù)類型包括float和real兩種類型。 Real:可以存儲正的或者負的十進制數(shù)值,最大可以有7位精確位數(shù)。存儲時使用4個字節(jié)。Float:可以精確到第15位小數(shù),其范圍從-1.79E-308到1.79E+308。用8個字節(jié)來存儲。 SQL Server 20056.2SQL Server的數(shù)據(jù)類型 6.
8、2.5日期時間數(shù)據(jù)類型SQL Server提供的日期時間數(shù)據(jù)類型可以存儲日期和時間的組合數(shù)據(jù)。以日期時間數(shù)據(jù)類型存儲日期或時間的數(shù)據(jù)比使用字符型數(shù)據(jù)進行存儲更簡單。因為SQL Server提供了一系列專門處理日期和時間的函數(shù)來處理這類數(shù)據(jù)。而且,如果使用字符型數(shù)據(jù)來存儲日期和時間,只有用戶本人可以識別,計算機并不能識別,因此也不能自動將這些數(shù)據(jù)按照日期和時間來進行處理。日期時間數(shù)據(jù)類型有datetime和smalldatetime兩種。Datetime:用于存儲日期和時間的結合體,可以存儲從公元1753年1月1日零時起-公元9999年12月31日23時59分59秒之間的所有日期和時間,其精確度
9、可達三百分之一秒,即3.33毫秒。當存儲datetime數(shù)據(jù)類型時,默認的格式是:MM DD YYYY hh:mm A.M./P.M。當插入數(shù)據(jù)或者在其它地方使用datetime類型時,需要用單引號把它括起來。datetime數(shù)據(jù)類型允許使用/、-和.作為不同時間單位間的分隔符。Smalldatetime:存儲從1900年1月1日-2079年6月6日內的日期,4個字節(jié)。 SQL Server 20056.2SQL Server的數(shù)據(jù)類型 6.2.6字符數(shù)據(jù)類型字符數(shù)據(jù)類型可以用來存儲各種字母、數(shù)字符號和特殊符號。SQL Server提供了兩類字符數(shù)據(jù)類型。Char:其定義形式為char(n),
10、每個字符和符號占用一個字節(jié)的存儲空間。如果實際數(shù)據(jù)的字符長度短于給定的最大長度,則多余的字節(jié)會用空格填充。Varchar:其定義形式為varchar(n)。用char數(shù)據(jù)類型可以存儲長達255個字符的可變長度字符串。在實際數(shù)據(jù)的字符長度短于給定的最大長度時,不會在多余的字節(jié)上填充空格。 SQL Server 20056.2SQL Server的數(shù)據(jù)類型 6.2.7統(tǒng)一碼數(shù)據(jù)類型統(tǒng)一碼數(shù)據(jù)類型是從SQL Server7.0開始提出的新數(shù)據(jù)類型,用于存儲雙字節(jié)字符,例如漢字。有以下兩種類型:Nchar(n):nchar(n)是固定長度的雙字節(jié)數(shù)據(jù)類型,n的取值范圍是14000,所以可以存儲的最大字
11、符數(shù)量是4000個字符。Nchar其他屬性及使用方法和char數(shù)據(jù)類型一樣。Nvarchar(n):存儲可變長度的雙字節(jié)數(shù)據(jù)類型,n的取值范圍是04000,所以存儲的最大字符數(shù)量也是4000個。Nvarchar其他屬性及使用方法和varchar數(shù)據(jù)類型一樣。 SQL Server 20056.2SQL Server的數(shù)據(jù)類型 6.2.8二進制數(shù)據(jù)類型所謂二進制數(shù)據(jù)是一些用十六進制來表示的數(shù)據(jù),有以下兩種類型。 Binary:其定義形式為binary(n),數(shù)據(jù)的存儲長度是固定的,即n+4個字節(jié)。二進制數(shù)據(jù)類型的最大長度(即n的最大值)為8000,常用于存儲圖像等數(shù)據(jù)。Varbinary:其定義
12、形式為varbinary(n),數(shù)據(jù)的存儲長度是變化的,它為實際所輸入數(shù)據(jù)的長度加上4字節(jié)。 在輸入二進制常量時,需在該常量前面加一個前綴0 x。 SQL Server 20056.2SQL Server的數(shù)據(jù)類型 6.2.9圖象,文本數(shù)據(jù)類型為了方便存儲和使用文本、圖像等大型數(shù)據(jù),SQL Server提供了以下三種類型數(shù)據(jù)。Text:容量可以在1-231-1個字節(jié)。在定義Text數(shù)據(jù)類型時,不需要指定數(shù)據(jù)長度,SQL Server會根據(jù)數(shù)據(jù)的長度自動為其分配空間。Ntext:采用unicode標準字符集,用于存儲大容量文本數(shù)據(jù)。其理論上的容量為230-1(1,073,741,823)個字節(jié)。
13、Image:用于存儲照片、目錄圖片或者圖畫,其理論容量為231-1(2,147,483,647)個字節(jié)。 SQL Server 20056.2SQL Server的數(shù)據(jù)類型 6.2.10新增數(shù)據(jù)類型sql_variant:用于存儲除文本、圖形數(shù)據(jù)和timestamp類型數(shù)據(jù)外的其它任何合法的SQL Server數(shù)據(jù)。table:用于存儲對表或者視圖處理后的結果集。這種新的數(shù)據(jù)類型使得變量可以存儲一個表,從而使函數(shù)或過程返回查詢結果更加方便、快捷。XML:XML數(shù)據(jù)類型是一用專門用于保存和操作XML的數(shù)據(jù)類型。它是以BLOB的二進制形式保存的,一個XML類型字段可以保存2GB的XML代碼,層次可
14、達128層。此外,XML數(shù)據(jù)類型還有檢驗XML數(shù)據(jù)完整性的功能,比以前用text類型保存XML數(shù)據(jù)方便得多。 SQL Server 20056.2SQL Server的數(shù)據(jù)類型 6.2.11特殊數(shù)據(jù)類型Timestamp:也稱作時間戳數(shù)據(jù)類型。是一種自動記錄時間的數(shù)據(jù)類型,主要用于在數(shù)據(jù)表中記錄其數(shù)據(jù)的修改時間。它提供數(shù)據(jù)庫范圍內的唯一值。Uniqueidentifier:也稱作唯一標識符數(shù)據(jù)類型。Uniqueidentifier用于存儲一個16字節(jié)長的二進制數(shù)據(jù)類型,它是SQL Server根據(jù)計算機網(wǎng)絡適配器地址和CPU時鐘產(chǎn)生的全局唯一標識符代碼(Globally Unique Iden
15、tifier,簡寫為GUID)。 SQL Server 20056.2SQL Server的數(shù)據(jù)類型 6.2.12用戶自定義數(shù)據(jù)類型用戶自定義數(shù)據(jù)類型并不是真正的數(shù)據(jù)類型,它只是提供了一種加強數(shù)據(jù)庫內部元素和基本數(shù)據(jù)類型之間一至性的機制。通過使用用戶自定義數(shù)據(jù)類型能夠簡化對常用規(guī)則和默認值的管理。1用系統(tǒng)存儲過程SP_ADDTYPE創(chuàng)建用戶自定義數(shù)據(jù)類型使用存儲過程SP_ADDTYPE的語法結構如下:SP_ADDTYPE typename= type,phystype= system_data_type, nulltype= null_type, owner= owner_name SQL S
16、erver 20056.2SQL Server的數(shù)據(jù)類型 參數(shù)說明: ntype:指定用戶定義的數(shù)據(jù)類型的名稱。nsystem_data_type:指定相應的系統(tǒng)提供的數(shù)據(jù)類型的名稱及定義。注意,不能使用timestamp數(shù)據(jù)類型,當所使用的系統(tǒng)數(shù)據(jù)類型有額外說明時,需要用引號將其括起來。null_type:指定用戶自定義數(shù)據(jù)類型的null屬性,其值可以為null、not null或者nonull。默認與系統(tǒng)默認的null屬性相同。owner_name:指定用戶自定義數(shù)據(jù)類型的所有者。 SQL Server 20056.2SQL Server的數(shù)據(jù)類型 【例6.2】自定義一個地址數(shù)據(jù)類型。USE bookGOEXEC SP_ADDTYPE address, varchar(80), not null上例創(chuàng)建了一個名為address的用戶自定義數(shù)據(jù)類型,基于varchar數(shù)據(jù)類型。該列不能為空。2使用SQL Server Management Studio創(chuàng)建用戶定義數(shù)據(jù)類型 SQL Serve
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 三農(nóng)村畜禽養(yǎng)殖場環(huán)保設施建設與管理指南與手冊
- 武漢冷鏈物流公司
- 包裝工程與設計作業(yè)指導書
- 跨境電商貨運險
- 企業(yè)合規(guī)經(jīng)營實踐指南
- 安全專項整治三年行動方案
- 江西雨水收集系統(tǒng)
- 新能源汽車充電保護
- 醫(yī)療行業(yè)醫(yī)療器械采購指南
- 智能家居控制系統(tǒng)展覽會
- GB/T 912-2008碳素結構鋼和低合金結構鋼熱軋薄鋼板和鋼帶
- GB/T 26480-2011閥門的檢驗和試驗
- 中共一大會址
- 云南省煙草買賣合同(標準版)
- 2023個人獨資企業(yè)清算報告(精選4篇)
- 衛(wèi)生統(tǒng)計學(全套課件)
- 2021年6月浙江省高考讀后續(xù)寫課件-高考英語復習備考
- 小學古詩詞80首(硬筆書法田字格)
- 城市軌道交通供電技術442頁完整版教學課件匯總全書電子教案
- 兒歌:媽媽過生日
- 《計算機網(wǎng)絡基礎》第1章計算機網(wǎng)絡概論
評論
0/150
提交評論