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 | 存储结果集以供以后处理 |