SQL 数据类型
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 | 1753 年 1 月 1 日 | 9999 年 12 月 31 日 |
smalldatetime | 1900 年 1 月 1 日 | 2079 年 6 月 6 日 |
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 个字符。 ( 可变长度 Unicode ) |
二进制数据类型
序号 | 数据类型和描述 |
---|---|
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 支持的数据类型的值,文本、ntext 和时间戳除外。 |
2 | timestamp 存储数据库范围的唯一编号,每次更新行时都会更新该编号 |
3 | uniqueidentifier 存储全局唯一标识符 (GUID) |
4 | xml 存储 XML 数据。你可以将 xml 实例存储在列或变量中(仅限 SQL Server 2005)。 |
5 | cursor 对游标对象的引用 |
6 | table 存储结果集供以后处理 |