T-SQL - 数据类型
SQL Server 数据类型是一个属性,它指定任何对象的数据类型。 SQL Server 中的每个列、变量和表达式都有相关的数据类型。 这些数据类型可以在创建表时使用。 您可以根据需要为表列选择特定的数据类型。
SQL Server 提供了七个类别,包括其他类别的数据类型供使用。
精确数值类型
Type | From | To |
---|---|---|
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 |
数字和小数是固定精度和小数位数据类型,在功能上是等效的。
近似数值类型
Type | From | To |
---|---|---|
Float | -1.79E + 308 | 1.79E + 308 |
Real | -3.40E + 38 | 3.40E + 38 |
日期和时间类型
Type | From | To |
---|---|---|
datetime(3.33 milliseconds accuracy) |
Jan 1, 1753 | Dec 31, 9999 |
smalldatetime(1 minute accuracy) |
Jan 1, 1900 | Jun 6, 2079 |
date(1 day accuracy. Introduced in SQL Server 2008) |
Jan 1, 0001 | Dec 31, 9999 |
datetimeoffset(100 nanoseconds accuracy. Introduced in SQL Server 2008) |
Jan 1, 0001 | Dec 31, 9999 |
datetime2(100 nanoseconds accuracy. Introduced in SQL Server 2008) |
Jan 1, 0001 | Dec 31, 9999 |
time(100 nanoseconds accuracy. Introduced in SQL Server 2008) |
00:00:00.0000000 | 23:59:59.9999999 |
Character 字符串
序号 | 类型 & 说明 |
---|---|
1 |
char 固定长度的非 Unicode 字符数据,最大长度为 8,000 个字符。 |
2 | varchar 最多 8,000 个字符的可变长度非 Unicode 数据。 |
3 | Varchar (max) 最大长度为 231 个字符的可变长度非 Unicode 数据(在 SQL Server 2005 中引入)。 |
4 | text 最大长度为 2,147,483,647 个字符的可变长度非 Unicode 数据 |
Unicode 字符串
序号 | 类型 & 说明 |
---|---|
1 |
nchar 固定长度的 Unicode 数据,最大长度为 4,000 个字符。 |
2 |
nvarchar 最大长度为 4,000 个字符的可变长度 Unicode 数据。 |
3 |
Nvarchar (max) 最大长度为 230 个字符的可变长度 Unicode 数据(在 SQL Server 2005 中引入)。 |
4 |
ntext 可变长度 Unicode 数据,最大长度为 1,073,741,823 个字符。 |
二进制字符串
序号 | 类型 & 说明 |
---|---|
1 |
binary 固定长度的二进制数据,最大长度为 8,000 字节。 |
2 |
varbinary 最大长度为 8,000 字节的可变长度二进制数据。 |
3 |
varbinary(max) 最大长度为 231 字节的可变长度二进制数据(在 SQL Server 2005 中引入)。 |
4 |
image 可变长度二进制数据,最大长度为 2,147,483,647 字节。 |
其他数据类型
sql_variant − 存储各种 SQL Server 支持的数据类型的值,文本、ntext 和时间戳除外。
timestamp − 存储一个数据库范围的唯一编号,每次更新一行时都会更新该编号。
uniqueidentifier − 存储全局唯一标识符 (GUID)。
xml − 存储 XML 数据。 您可以将 XML 实例存储在列或变量中(在 SQL Server 2005 中引入)。
cursor − 对游标的引用。
table − 存储结果集以供以后处理。
hierarchyid − 一种可变长度的系统数据类型,用于表示层次结构中的位置(在 SQL Server 2008 中引入)。