SQL 数据类型
SQL 数据类型是一种属性,它指定了任何 SQL 对象中数据的类型。在 SQL 中,任意一个列、变量或者表达式都有其数据类型。
创建表的时候,你会用到这些数据类型。你应该根据需要为表中的每一个列选择合适的数据类型。
SQL Server 提供了六种数据类型供你使用:
精确数值数据类型
| 数据类型 |
下限 |
上限 |
| bigint |
-9,223,372,036,854,770,000 |
9,223,372,036,854,770,000 |
| int |
-2,147,483,648 |
2,147,483,647 |
| smallint |
-32,768 |
32,767 |
| tinyint |
0 |
255 |
| bit |
0 |
1 |
| decimal |
1E+38 |
10^38 -1 |
| numeric |
1E+38 |
10^38 -1 |
| money |
-922,337,203,685,477.00 |
922,337,203,685,477.00 |
| smallmoney |
-214,748.36 |
214,748.36 |
近似数值数据类型
| 数据类型 |
下限 |
上限 |
| float |
-1.79E + 308 |
1.79E + 308 |
| real |
-3.40E + 38 |
3.40E + 38 |
日期和时间数据类型
| 数据类型 |
下限 |
上限 |
| datetime |
Jan 1, 1753 |
31-Dec-99 |
| smalldatetime |
1-Jan-00 |
6-Jun-79 |
| date |
存储一个日期数据,例如 June 30, 1991 |
| time |
存储一个时间数据,例如 12:30 P.M. |
注意:datetime 的时间和精度为 3.33 ms,而 smalldatetime 的时间精度为 1 min。
字符串数据类型
| 数据类型 |
下限 |
上限 |
| char |
char |
最大长度为 8,000 字符。(定长非 Unicode 字符) |
| varchar |
varchar |
最大长度为 8,000 字符。(变长非 Unicode 数据) |
| varchar(max) |
varchar(max) |
最大长度为 231 字符, 变长非 Unicode 数据 (仅限 SQL Server 2005). |
| text |
text |
变长非 Unicode 字符数据,最大长度 2,147,483,647 字符。 |
Unicode 字符串数据类型
| 数据类型 |
描述 |
| nchar |
最大长度 4000 字符。(定长 Unicode 字符串) |
| nvarchar |
最大长度 4000 字符。(变长 Unicode 字符串) |
| nvarchar(max) |
最大长度 231 字符 。(仅限 SQL Server 2005)。(变长 Unicode 字符串) |
| ntext |
最大长度 1,073,741,823 字符。(变长 Unicode 字符串) |
二进制数据类型
| 数据类型 |
描述 |
| binary |
最大长度 8000 字节。(定长二进制数据) |
| varbinary |
最大长度 8000 字节。(变长二进制数据) |
| varbinary(max) |
最大长度 231字节 (仅限 SQLServer 2005)。 (变长二进制数据) |
| image |
最大长度 2,147,483,647 字节。(变长二进制数据) |
其他数据类型
| 数据类型 |
描述 |
| sql_variant |
存储多种 SQL 支持的数据类型,text、ntext、timestamp 除外。 |
| timestamp |
一个数据库级的唯一值,每当有行更新此数据就会更新。 |
| uniqueidentifier |
全局唯一标识符(GUID) |
| xml |
存储 XML 数据。你可以在列或者变量中存储 XML 实例。(仅限 SQL Server 2005) |
| cursor |
指向 cursor 对象。 |
| table |
存储结果,以备后用。 |
更多建议: