SQL數據類型是指定任何對象的數據類型的屬性。 每列,變數和運算式在SQL中都有相關的數據類型。 在創建表時可以使用這些數據類型。 也可以根據需要為表的列(字段)選擇合適的數據類型。在資料庫中,表的每列都具有特定的數據類型。 數據類型指定列(字段)可以容納的數據類型,例如字串,數值和日期時間值。
以SQL Server為例,它提供了六種類型的數據類型,如下所示 -
精確的數字數據類型
數據類型 | 開始值 | 結束值 |
---|---|---|
bigint |
-9,223,372,036,854,775,808 |
9,223,372,036,854,775,807 |
int |
-2,147,483,648 |
2,147,483,647 |
smallint |
-32,768 |
32,767 |
tinyint |
0 |
255 |
bit |
0 |
1 |
decimal |
-10^38 +1 |
10^38 -1 |
numeric |
-10^38 +1 |
10^38 -1 |
money |
-922,337,203,685,477.5808 |
+922,337,203,685,477.5807 |
smallmoney |
-214,748.3648 |
+214,748.3647 |
近似數字數據類型
數據類型 | 開始值 | 結束值 |
---|---|---|
float |
-1.79E + 308 |
1.79E + 308 |
real |
-3.40E + 38 |
3.40E + 38 |
日期和時間數據類型
數據類型 | 開始值 | 結束值 |
---|---|---|
datetime |
-1.79E + 308 |
1.79E + 308 |
smalldatetime |
Jan 1, 1900 |
Jun 6, 2079 |
date |
存儲日期,如1991年6月30日 | |
time |
存儲時間。如,下午12:30 |
注意 - 這裏,
datetime
的精度為3.33
毫秒,而smalldatetime
的精度為1
分鐘。
字串數據類型
序號 | 數據類型 | 描述 |
---|---|---|
1 | char |
最大長度為8,000 個字元,非Unicode 字元固定長度。 |
2 | varchar |
最多8,000 個字元,非Unicode 數據可變長度。 |
3 | varchar(max) |
最大長度為2E + 31 個字元,可變長度非Unicode 數據(僅限SQL Server 2005)。 |
4 | text |
非Unicode 數據的可變長度,最大長度為2,147,483,647 個字元。 |
Unicode字串數據類型
序號 | 類型 | 描述 |
---|---|---|
1 | nchar |
最大長度為4,000 個字元,Unicode 字元固定長度。 |
2 | nvarchar |
最大長度為4,000 個字元,Unicode 字元可變長度。 |
3 | nvarchar(max) |
最大長度為2E + 31 個字元(僅限SQL Server 2005),Unicode 字元可變長度。 |
4 | ntext |
最大長度為1,073,741,823 個字元,可變長度。 |
二進位數據類型
序號 | 類型 | 描述 |
---|---|---|
1 | binary |
最大長度為8,000 位元組,固定長度的二進位數據。 |
2 | varbinary |
最大長度為8,000 位元組,可變長度二進位數據。 |
3 | varbinary(max) |
最大長度為2E + 31 個位元組(僅限SQL Server 2005),可變長度二進位數據。 |
4 | image |
最大長度為2,147,483,647 位元組,可變長度二進位數據) |
其他數據類型
序號 | 類型 | 描述 |
---|---|---|
1 | sql_variant |
存儲各種SQL Server支持的數據類型的值,text ,ntext 和timestamp 類型除外。 |
2 | timestamp |
存儲資料庫範圍的唯一編號,每次更新行時都會更新該編號。 |
3 | uniqueidentifier |
存儲全局唯一識別字(GUID) |
4 | xml |
存儲XML數據,可以將xml實例存儲在列或變數中(僅限SQL Server 2005)。 |
5 | cursor |
引用游標對象 |
6 | table |
存儲結果集以供以後處理 |