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 |
儲存結果集以供以後處理 |