SQL Server數(shù)據(jù)類型一覽表
·Binary [(n)]
·Varbinary [(n)]
·Char [(n)]
·Varchar[(n)]
·Nchar[(n)] 存儲unicode編碼的固定長度字符
·Nvarchar[(n)]
·Datetime
·Smalldatetime
·Decimal[(p[,s])]
·Numeric[(p[,s])]
·Float[(n)]
·Real
·Int
·Smallint
·Tinyint
·Money
·Smallmoney
·Bit
·Cursor
·Sysname
·Timestamp
·Uniqueidentifier
·Text
·Image
·Ntext
1、二進(jìn)制數(shù)據(jù)類型
二進(jìn)制數(shù)據(jù)由十六進(jìn)制數(shù)表示,可以使用 binary、varbinary 和 image 數(shù)據(jù)類型存儲。
·binary 固定長度(最多為8K)的二進(jìn)制數(shù)據(jù)類型。
binary [ ( n ) ]
固定長度的 n 個字節(jié)二進(jìn)制數(shù)據(jù)。N 必須從 1 到 8,000。存儲空間大小為 n+4 字節(jié)。
·varbinary 可變長度(最多為8K)的二進(jìn)制數(shù)據(jù)類型。
varbinary [ ( n ) ]
n 個字節(jié)變長二進(jìn)制數(shù)據(jù)。n 必須從 1 到 8,000。存儲空間大小為實(shí)際輸入數(shù)據(jù)長度 +4個字節(jié),而不是 n 個字節(jié)。輸入的數(shù)據(jù)長度可能為 0 字節(jié)。在 SQL-92 中 varbinary 的同義詞為 binary varying。
·image 用來存儲長度超過 8 KB 的可變長度的二進(jìn)制數(shù)據(jù)。
除非數(shù)據(jù)長度超過 8KB,否則一般宜用 varbinary 類型來存儲二進(jìn)制數(shù)據(jù)。一般用來存放 Microsoft Word 文檔、Microsoft Excel 電子表格、包含位圖的圖像、圖形交換格式 (GIF) 文件和聯(lián)合圖像專家組 (JPEG) 文件。
在 Image 數(shù)據(jù)類型中存儲的數(shù)據(jù)是以位字符串存儲的,不是由 SQL Server 解釋的,必須由應(yīng)用程序來解釋。例如,應(yīng)用程序可以使用BMP、TIEF、GIF 和 JPEG 格式把數(shù)據(jù)存儲在 Image 數(shù)據(jù)類型中。
2、字符數(shù)據(jù)類型
字符數(shù)據(jù)由字母、符號和數(shù)字組成。使用 char、varchar 和 text 數(shù)據(jù)類型存儲。
·char 固定長度(不超過 8 KB)的字符數(shù)據(jù)類型。
char[(n)]
長度為 n 個字節(jié)的固定長度且非 Unicode 的字符數(shù)據(jù)。n 必須是一個介于 1 和 8,000之間的數(shù)值。存儲大小為 n 個字節(jié)。char 在 SQL-92 中的同義詞為 character。
·varchar 可變長度(不超過 8 KB)的字符數(shù)據(jù)類型。
varchar[(n)]
長度為 n 個字節(jié)的可變長度且非 Unicode 的字符數(shù)據(jù)。n 必須是一個介于 1 和 8,000之間的數(shù)值。存儲大小為輸入數(shù)據(jù)的字節(jié)的實(shí)際長度,而不是 n 個字節(jié)。所輸入的數(shù)據(jù)字符長度可以為零。varchar 在SQL-92 中的同義詞為char varying 或character varying。
·text 數(shù)據(jù)類型的列可用于存儲大于 8KB 的 ASCII 字符。
例如,由于 HTML 文檔均由 ASCII 字符組成且一般長于 8KB,所以用瀏覽器查看之前應(yīng)在 SQL Server 中存儲在 text 列中。
3、Unicode數(shù)據(jù)類型
使用 Unicode 數(shù)據(jù)類型,列可存儲由 Unicode 標(biāo)準(zhǔn)定義的任何字符,包含由不同字符集定義的所有字符。Unicode 數(shù)據(jù)使用 SQL Server 中的 nchar、varchar 和 ntext 數(shù)據(jù)類型進(jìn)行存儲。
·nchar 固定長度(至多為 4000 個 Unicode 字符)的Unicode數(shù)據(jù)類型。
nchar(n)
包含n 個字符的固定長度Unicode字符數(shù)據(jù)。n的值必須介于1與4,000之間。存儲大小為n字節(jié)的兩倍。nchar 在 SQL-92 中的同義詞為 national char 和 national character。
·nvarchar ( varchar ) 是可變長度 Unicode 數(shù)據(jù)的數(shù)據(jù)類型。
nvarchar(n)
包含 n 個字符的可變長度 Unicode 字符數(shù)據(jù)。n 的值必須介于 1 與 4,000 之間。
字節(jié)的存儲大小是所輸入字符個數(shù)的兩倍。所輸入的數(shù)據(jù)字符長度可以為零。nvarchar在 SQL-92 中的同義詞為 national char varying 和 national character varying。
·ntext 當(dāng)列中任意項(xiàng)超過 4000 個 Unicode字符時使用。
4、日期和時間數(shù)據(jù)類型
日期和時間數(shù)據(jù)由有效的日期或時間組成。例如,有效日期和時間數(shù)據(jù)既包括"4/01/98 12:15:00:00:00 PM",也包括"1:28:29:15:01 AM 8/17/98"。在 Microsoft® SQL Server™ 2000 中,日期和時間數(shù)據(jù)使用 datetime 和 smalldatetime 數(shù)據(jù)類型存儲。
·datetime
數(shù)據(jù)類型存儲從 1753 年 1 月 1 日至 9999 年 12 月 31 日的日期。
每個數(shù)值要求 8 個字節(jié)的存儲空間。
·smalldatetime
數(shù)據(jù)類型存儲從 1900 年 1 月 1 日至 2079 年 6 月 6 日的日期。
每個數(shù)值要求 4 個字節(jié)的存儲空間。
·設(shè)置日期
格式的命令如下:
Set DateFormat {format | @format _var|
其中,format | @format_var 是日期的順序。有效的參數(shù)包括 MDY、DMY、YMD、YDM、MYD 和 DYM。在默認(rèn)情況下,日期格式為MDY。
5、數(shù)字?jǐn)?shù)據(jù)類型
數(shù)字?jǐn)?shù)據(jù)只包含數(shù)字。數(shù)字?jǐn)?shù)據(jù)包括正數(shù)、負(fù)數(shù)、小數(shù)、分?jǐn)?shù)和整數(shù)。
·整型數(shù)據(jù)
整型數(shù)據(jù)由負(fù)整數(shù)或正整數(shù)組成,如 -15、0、5 和 2509。在 Microsoft® SQL Server™ 2000 中,整型數(shù)據(jù)使用 bigint、int、smallint 和 tinyint 數(shù)據(jù)類型存儲。bigint 數(shù)據(jù)類型可存儲的數(shù)字范圍比 int 數(shù)據(jù)類型廣。int 數(shù)據(jù)類型比 smallint 數(shù)據(jù)類型的存儲范圍大,而 smallint 的數(shù)值范圍又比tinyint 類型大。
bigint 存儲從-2^63 (-9223372036854775808)到2^63-1(9223372036854775807) 范圍內(nèi)的數(shù)字。存儲大小為 8 個字節(jié)。
int 存儲范圍是-2,147,483,648至2,147,483,647(每個值需4個字節(jié)的存儲空間)。
smallint 存儲范圍只有 -32,768 至 32,767(每個值需 2 個字節(jié)的存儲空間)。
tinyint 只能存儲 0 至 255 范圍內(nèi)的數(shù)字(每個值需 1 個字節(jié)的存儲空間)。
·小數(shù)數(shù)據(jù)
Decimal 數(shù)據(jù)包含存儲在最小有效數(shù)上的數(shù)據(jù)。在 SQL Server中,小數(shù)數(shù)據(jù)使用 decimal 或 numeric 數(shù)據(jù)類型存儲。存儲 decimal 或 numeric 數(shù)值所需的字節(jié)數(shù)取決于該數(shù)據(jù)的數(shù)字總數(shù)和小數(shù)點(diǎn)右邊的小數(shù)位數(shù)。例如,存儲數(shù)值 19283.29383 比存儲 1.1 需要更多的字節(jié)。在 SQL Server中,numeric 數(shù)據(jù)類型等價于 decimal 數(shù)據(jù)類型。
·近似數(shù)字?jǐn)?shù)據(jù)
近似數(shù)字(浮點(diǎn))數(shù)據(jù)包括按二進(jìn)制計(jì)數(shù)系統(tǒng)所能提供的最大精度保留的數(shù)據(jù)。在 SQL Server 中,近似數(shù)字?jǐn)?shù)據(jù)以 float 和 real 數(shù)據(jù)類型存儲。例如,分?jǐn)?shù) 1/3 表示成小數(shù)形式為 0.333333(循環(huán)小數(shù)),該數(shù)字不能以近似小數(shù)數(shù)據(jù)精確表示。因此,從 SQL Server 獲取的值可能并不準(zhǔn)確代表存儲在列中的原始數(shù)據(jù)。又如以 .3, .6, .7 結(jié)尾的浮點(diǎn)數(shù)均為數(shù)字近似值。
6、貨幣數(shù)據(jù)類型
貨幣數(shù)據(jù)表示正的或負(fù)的貨幣值。在 Microsoft® SQL Server™ 2000 中使用 money 和 smallmoney 數(shù)據(jù)類型存儲貨幣數(shù)據(jù)。貨幣數(shù)據(jù)存儲的精確度為四位小數(shù)。
·money 存儲范圍是 -922,337,203,685,477.5808 至+922,337,203,685,477.5807
(需 8 個字節(jié)的存儲空間)。
·smallmoney 存儲范圍是 -214,748.3648 至 214,748.3647(需 4 個字節(jié)的存儲空間)。
·如果數(shù)值超過了上述范圍,則可使用 decimal 數(shù)據(jù)類型代替。
7、特殊數(shù)據(jù)類型
特殊數(shù)據(jù)包括不能用前面所述的二進(jìn)制、字符、Unicode、日期和時間、數(shù)字和貨幣數(shù)據(jù)類型表示的數(shù)據(jù)。
Microsoft® SQL Server™ 2000 包含四種特殊數(shù)據(jù)類型:
·timestamp
用于表示 SQL Server 在一行上的活動順序,按二進(jìn)制格式以遞增的數(shù)字來表示。當(dāng)表中的行發(fā)生變動時,用從 @@DBTS 函數(shù)獲得的當(dāng)前數(shù)據(jù)庫的時間戮值來更新時間戮。timestamp 數(shù)據(jù)與插入或修改數(shù)據(jù)的日期和時間無關(guān)。若要自動記錄表中數(shù)據(jù)更改的時間,使用 datetime 或 smalldatetime 數(shù)據(jù)類型記錄事件或觸發(fā)器。SQL Serve 中 rowversion 是 timestamp 的同義詞。
·bit
bit 數(shù)據(jù)類型只能包括 0 或 1??梢杂?bit 數(shù)據(jù)類型代表 TRUE 或 FALSE、YES 或 NO。例如,詢問客戶是否為初次訪問的問題可存儲在 bit 列中。
·uniqueidentifier
以一個 16 位的十六進(jìn)制數(shù)表示全局唯一標(biāo)識符 (GUID)。當(dāng)需要在多行中唯一標(biāo)識某一行時可使用 GUID。例如,可使用 unique_ identifier 數(shù)據(jù)類型定義一個客戶標(biāo)識代碼列,以編輯公司來自多個國家/地區(qū)的總的客戶名錄。
·sql_variant
一種存儲 SQL Server 所支持的各種數(shù)據(jù)類型(text、ntext、timestamp 和 sql_variant 除外)值的數(shù)據(jù)類型。
·table
一種特殊的數(shù)據(jù)類型,存儲供以后處理的結(jié)果集。table 數(shù)據(jù)類型只能用于定義 table 類型的局部變量或用戶定義函數(shù)的返回值。
·用戶定義
允許使用用戶定義數(shù)據(jù)類型,例如,product_code 可設(shè)計(jì)為基于 char 數(shù)據(jù)類型的兩個大寫字母后跟 5 位供應(yīng)商號碼的格式