SQL Server 2005 中的數據類型歸納為下列類別:精確數字
bigint
decimal
int
numeric
smallint
money
tinyint
smallmoney
bit
近似數字
float
real
日期和時間
datetime
smalldatetime
字符串
char
text
varchar
Unicode字符串
nchar
ntext
nvarchar
二進制字符串
binary
image
varbinary
其他數據類型
cursor
timestamp
sql_variant
uniqueidentifier
table
1、精確數字
I) 整型數據類型int、bigint、smallint 和 tinyint
數據類型
范圍
存儲
bigint
-2^63 (-9,223,372,036,854,775,808) 到 2^63-1 (9,223,372,036,854,775,807)
8 字節
int
-2^31 (-2,147,483,648) 到 2^31-1 (2,147,483,647)
4 字節
smallint
-2^15 (-32,768) 到 2^15-1 (32,767)
2 字節
tinyint
0 到 255
1 字節
II) bit 可以取值為 1、0 或 NULL 的整數數據類型。如果表中的列為 8 bit 或更少,則這些列作為 1 個字節存儲。如果列為 9 到 16 bit,則這些列作為 2 個字節存儲,以此類推。字符串值 TRUE 和 FALSE 可以轉換為以下 bit 值:TRUE 轉換為 1,FALSE 轉換為 0。
III) decimal 和 numeric,兩者都是帶固定精度和小數位數的數值數據類型。decimal[ (p[ , s] )] 和 numeric[ (p[ , s] )] 兩者都是固定精度和小數位數。使用最大精度時,有效值從 - 10^38 +1 到 10^38 - 1。numeric 在功能上等價於 decimal。p(精度)最多可以存儲的十進制數字的總位數,包括小數點左邊和右邊的位數。該精度必須是從 1 到最大精度 38 之間的值。默認精度為 18。s(小數位數)小數點右邊可以存儲的十進制數字的最大位數。小數位數必須是從 0 到 p 之間的值。僅在指定精度後才可以指定小數位數。默認的小數位數為 0;因此,0 <= s <= p。最大存儲大小基於精度而變化。
Ⅳ) money 和 smallmoney,兩者是 代表貨幣或貨幣值的數據類型。
數據類型
范圍
存儲
money
-922,337,203,685,477.5808 到 922,337,203,685,477.5807
8 字節
smallmoney
-214,748.3648 到 214,748.3647
4 字節
money 和 smallmoney 數據類型精確到它們所代表的貨幣單位的萬分之一。
2、近似數字 float 和 real,兩者用於表示浮點數值數據的大致數值數據類型。浮點數據為近似值;因此,並非 數據類型范圍內的所有值都能精確地表示。
數據類型
范圍
存儲
float
-1.79E + 308 至 -2.23E - 308、0 以及 2.23E - 308 至 1.79E + 308
取決於 n 的值
real
-3.40E + 38 至 -1.18E - 38、0 以及 1.18E - 38 至 3.40E + 38
4 字節
float [ ( n ) ] 其中 n 為用於存儲 float 數值尾數的位數,以科學記數法表示,因此可以確定精度和存儲大小。如果指定了 n,則它必須是介於 1 和 53 之間的某個值。n 的默認值為 53。
3、日期和時間 datetime 和 smalldatetime 兩者用於表示某天的日期和時間的數據類型。
數據類型
范圍
精確度
datetime
1753 年 1 月 1 日到 9999 年 12 月 31 日
3.33 毫秒
smalldatetime
1900 年 1 月 1 日到 2079 年 6 月 6 日
1 分鐘
datetime用兩個 4 字節的整數存儲,第一個 4 字節存儲"基礎日期"(即 1900 年 1 月 1 日)之前或之後的天數。基礎日期是系統參照日期。另外一個 4 字節存儲天的時間(以午夜後經過的毫秒數表示)。
smalldatetime 數據類型存儲天的日期和時間,但精確度低於 datetime.數據庫引擎 將 smalldatetime 值存儲為兩個 2 字節的整數。第一個 2 字節存儲 1900 年 1 月 1 日後的天數。另外一個 2 字節存儲午夜後經過的分鐘數。
4、字符串char [ ( n ) ],varchar [ ( n | max ) ],text
char [ ( n ) ]可以存儲字母數字值,固定長度,非 Unicode 字符數據,長度為 n 個字節。n 的取值范圍為 1 至 8,000,存儲大小是 n 個字節。如果未在數據定義或變量聲明語句中指定 n,則默認長度為 1.如果在使用 CAST 和 CONVERT 函數時未指定 n,則默認長度為 30.
varchar [ ( n | max ) ] 可以存儲字母數