2008年11月12日 星期三

SQL Server 2005 資料類型

根據 SQL Server 2005 MSDN http://msdn.microsoft.com/zh-tw/library/ms187752(SQL.90).aspx
其資料類型有以下幾項

精確數值類

-bigint
-int
-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 位元組


-bit
值有 1、0 或 NULL,Database Engine 會將儲存體最佳化,即如資料表中有1-8個bit資料型態,會儲存為一個位元組,依此類推,9-16個bit資料型態則會儲存為兩個位元組。

-decimal
-numberic
decimal[ (p[ , s] )] and numeric[ (p[ , s] )] 指定十進位資料型態,左(p) 及右(s) 的有效位數,但須遵守 0<=s<=p 的規則。 兩者並無不同。有效位數最多為38。
有效位數 儲存體位元組

1 - 9

5

10-19

9

20-28

13

29-38

17


-money
-smallmoney
代表金融或貨幣的資料類型
資料類型 範圍 儲存體

money

-922,337,203,685,477.5808 到 922,337,203,685,477.5807

8 位元組

smallmoney

- 214、748.3648 到 214、748.3647

4 位元組



近似數值類:

-float
-real
浮點數 real 的 SQL-92 同義字是 float(24)
資料類型 範圍 儲存體

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 的預設值為53。
n 有效位數 儲存體大小

1-24

7 位數

4 位元組

25-53

15 位數

8 位元組



日期和時間類:


-datetime
-smalldatetime
資料類型 範圍 精確度

datetime

1753 年 1 月 1 日到 9999 年 12 月 31 日

3.33 毫秒

smalldatetime

1900 年 1 月 1 日到 2079 年 6 月 6 日

1 分鐘



字元字串類:


-char
char [ ( n ) ] 固定長度非 Unicode 字元資料。儲存體大小是 n 位元組。
-varchar
varchar [ ( n | max ) ] 可變長度非 Unicode 字元資料。n 可以是 1 到 8,000 的值。max 表示最大儲存體大小是 2^31-1 位元組。儲存體大小是輸入資料的實際長度再加上 2 位元組。
  • 當資料行資料項目的大小不一致時,請使用 char
  • 當資料行資料項目的大小變化相當大時,請使用 varchar
  • 當資料行資料項目的大小變化相當大,且大小可能超出 8,000 位元組時,請使用 varchar(max)
-text
在未來的 Microsoft SQL Server 版本中,將移除 ntexttextimage 等資料類型。 (SQL Server 2005 及 2008 的MSDN都這麼說,雖然不知何時移除,但也表示此資料類型已不適用)


Unicode 字元字串類:


-nchar nchar [ ( n ) ] 固定長度 Unicode 字元資料。n 必須是 1 到 4,000 的值。儲存體大小是 n 位元組的兩倍。
-nvarchar nvarchar [ ( n | max ) ] 可變長度,Unicode 字元資料。n 可以是 1 到 4,000 的值。max 表示最大儲存體大小是 2^31-1 位元組。儲存體大小是輸入字元數的兩倍 + 2 位元組 (以位元組為單位)。
-ntext 在未來的 Microsoft SQL Server 版本中,將移除 ntexttextimage 等資料類型。 (SQL Server 2005 及 2008 的MSDN都這麼說,雖然不知何時移除,但也表示此資料類型已不適用)


二進位字串類:


-binary
binary [ ( n ) ] 固定長度的二進位資料,其長度為 n 位元組,n 代表 1 到 8,000 的值。儲存體大小是 n 位元組。
-varbinary
varbinary [ ( n | max) ] 可變長度的二進位資料。n 是 1 到 8,000 的值。max 表示儲存體大小上限是 2^31-1 位元組。儲存體大小是輸入資料的實際長度再加上 2 位元組。
-image
在未來的 Microsoft SQL Server 版本中,將移除 ntexttextimage 等資料類型。 (SQL Server 2005 及 2008 的MSDN都這麼說,雖然不知何時移除,但也表示此資料類型已不適用)


其他資料類型:


-cursor
-sql_variant
-table
-timestamp
-uniqueidentifier
-xml
這些資料類型用法較特殊,且不常使用,擇日再補述。

沒有留言:

張貼留言