SQL 基础教程
SQL 连接
SQL 高级教程
SQL 参考资料

SQL Server 数据类型

以下部分介绍 SQL Server 支持的数据类型。

SQL Server 数据类型

Microsoft SQL Server 支持的数据类型可以分为三大类:字符串, 数值日期/时间 数据类型。

字符串数据类型

字符串数据类型通常用于存储名称、地址、描述或任何包含字母和数字的值,包括二进制数据,如图像或音频文件。

数据类型 说明
char(n) 存储固定长度的字符串。 最大长度 8,000 个字符。
varchar(n) 存储可变长度的字符串。 最大长度 8,000 个字符。
varchar(max) 存储可变长度的字符串。 这里,max表示最大存储大小为2GB。
text 存储可变长度的字符串。 最大存储大小为 2 GB。
nchar 存储固定长度的 Unicode 字符串。 最大长度 4,000 个字符。
nvarchar 存储可变长度的 Unicode 字符串。 最大长度 4,000 个字符。
nvarchar(max) 存储可变长度的 Unicode 字符串。 这里,max表示最大存储大小为2GB。
ntext 存储可变长度的 Unicode 字符串。 最大存储大小为 2 GB。
binary(n) 存储固定长度的二进制数据。 最大存储大小为 8,000 字节。
varbinary(n) 存储可变长度的二进制数据。 最大存储大小为 8,000 字节。
varbinary(max) 存储可变长度的二进制数据。 这里,max表示最大存储大小为2GB。
image 存储可变长度的二进制数据。 最大存储大小为 8,000 字节。

数值数据类型

数值数据类型通常用于存储价格、工资等数据。

数据类型 说明
bit 允许您存储值 1、0 或 NULL
tinyint 存储 0 到 255 范围内的整数值。
smallint 存储 -32,768 到 32,767 范围内的整数值。
int 存储范围从 -2,147,483,648 到 2,147,483,647 的整数值。
bigint 存储从 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 范围内的整数值。
decimal(p,s) 存储固定精度和小数位数。 有效值从 10^38 +1 到 10^38 - 1。 更多详情见下文。
numeric(p,s) numeric 数据类型在功能上等同于 decimal
smallmoney 允许您在 -214,748.3648 到 214,748.3647 的范围内准确存储货币或货币值。
money 允许您在 -922,337,203,685,477.5808 到 922,337,203,685,477.5807 的范围内准确存储货币或货币值。
float(n) 存储浮点数值。 有效值为 -1.79E+308 到 -2.23E-308、0 和 2.23E-308 到 1.79E+308。
real 存储浮点数值。 有效值为 -3.40E + 38 到 -1.18E - 38、0 和 1.18E - 38 到 3.40E + 38。

在声明一个 decimalnumeric 列时,可以指定精度和小数位数,如 decimal(p,s)numeric(p,s),其中 p 或精度表示可以存储的最大总位数,包括小数点的左侧和右侧。 精度必须是 1 到 38 之间的值。默认精度是 18。

s 或 小数位数表示可以存储到小数点右侧的最大位数。 从 p 中减去该数字以确定小数点左侧的最大位数。 小数位数必须是从 0 到 p 的值。 默认比例为 0。

例如,price decimal(6,2) 列可以存储任何具有六位数字和两位小数的值,即范围从 -9999.99 到 9999.99。


日期和时间数据类型

日期和时间数据类型通常用于存储数据,如出生日期、招聘日期、在表内创建或更新记录的日期和时间等。

数据类型 说明
date 存储从 0001-01-01(1 月 1 日)到
9999-12-31(9999 年 12 月 31 日)范围内的日期值。
time 以 100 纳秒的精度存储一天中的时间。 有效值从 00:00:00.0000000 到 23:59:59.9999999。
datetime 以 3.33 毫秒的精度存储组合的日期和时间值。 datetime 的有效日期范围是 1753-01-01(1753 年 1 月 1 日)到 9999-12-31(9999 年 12 月 31 日)。
datetime2 datetime2datetime 数据类型的扩展,具有更大的日期范围。 datetime2 的有效日期范围为 0001-01-01(1 月 1 日)到 9999-12-31(9999 年 12 月 31 日)。
smalldatetime 以 1 分钟的精度存储组合的日期和时间值。 smalldatetime 的有效日期范围是从 1900-01-01(1900 年 1 月 1 日)到
2079-06-06(2079 年 6 月 6 日)。
datetimeoffset datetime2 相同,但添加了时区偏移量。 默认格式为 YYYY-MM-DD hh:mm:ss[.nnnnnnn] [{+|-}hh:mm]。 时区偏移的有效范围是 -14:00 到 +14:00。
timestamp 在 SQL Server 中,timestamprowversion 数据类型的同义词,它在数据库中自动生成唯一的二进制数。 rowversion 通常用于版本标记表行。

注意: 每次在表中插入或修改具有 rowversion 列的行时,都会在 rowversion 列中插入递增的数据库 rowversion 值。 一个表只能有一个 rowversion 列。

Advertisements