SQL Server (Transact-SQL) 数据类型是一个属性,它创建指定表时将存储在每个列中的数据类型。数据类型是 SQL Server 了解每个列中期望的数据类型的指南,它还是标识SQL Server 将如何与存储的数据进行交互。
在 SQL Server (Transact-SQL) 中,数据类型主要可以分为四类:
- 字符串数据类型
- 数字数据类型
- 日期和时间数据类型
- 其他数据类型
字符串数据类型
数据类型 | 描述 |
---|
CHAR(size) | 固定宽度字符串数据类型。其大小最多可达 8000 个字符。 |
VARCHAR(size) | 可变宽度字符串数据类型。其大小最多可达 8000 个字符。 |
VARCHAR(max) | 可变宽度字符串数据类型。其大小最多可达 231-1 个字符。 |
TEXT | 可变宽度字符串数据类型。其大小最大可达 2GB 文本数据。 |
NCHAR(size) | 固定宽度 Unicode 字符串数据类型。其大小最多可达 4000 个字符。 |
NVARCHAR(size) | 可变宽度 Unicode 字符串数据类型。其大小最多可达 4000 个字符。 |
NVARCHAR(max) | 可变宽度 Unicode 字符串数据类型。其大小最多可达 231-1 个字符。 |
NTEXT | 可变宽度 Unicode 字符串数据类型。其大小最大可达 2GB 文本数据。 |
BINARY(size) | 固定的二进制字符串数据类型。它的大小最多可达 8000 字节。 |
VARBINARY(size) | 可变宽度二进制字符串数据类型。其大小最多可达 8000 字节。 |
VARBINARY(max) | 可变宽度二进制字符串数据类型。其大小最多可达 231-1 个字符。 |
IMAGE | 可变宽度二进制字符串数据类型。其大小最大可达 2GB。 |
数字数据类型
数据类型 | 描述 |
---|
BIT | 整数,可以为 0、1 或 null。 |
TINYBIT | 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 之间的整数。 |
FLOAT(n) | 浮动精度数字数据从 -1.79E+308 到 1.79E+308。 n 参数指示该字段是否应保存 4 个字节或 8 个字节。 n的默认值为53。 |
REAL | 从-3.40E+38到3.40E+38的浮点精度数字数据。 |
SMALLMONEY | 用于指定从 - 214,748.3648 到 214,748.3647 的货币数据。 |
MONEY | 用于指定从-922,337,233,685,477.5808到922,337,203,685,477.5807的货币数据。 |
DECIMAL(p, s) | 固定精度和小数位数。要存储的小数位数的最大总数由 p 指定。小数点右侧存储的小数位数由 s 指定。使用最大精度时,有效值范围为 - 1038 +1 到 1038 - 1。 |
DEC (p, s) | 与 DECIMAL(p, s) 相同。 |
NUMERIC(p, s) | 与DECIMAL(p, s)。 |
日期和时间数据类型
数据类型 | 描述 |
---|
DATETIME | 日期和时间组合。格式:"YYYY-MM-DD hh:mm:ss[.mmm]"。它支持的范围从 1753 年 1 月 1 日到 9999 年 12 月 31 日,精度为 3.33 毫秒。 |
DATETIME2 | 日期和时间组合。格式:"YYYY-MM-DD hh:mm:ss[.小数秒]"。它支持的范围从 0001 年 1 月 1 日到 9999 年 12 月 31 日,精度为 100 纳秒。 |
DATE | 日期。格式:"年-月-日"。支持范围从 0001 年 1 月 1 日到 9999 年 12 月 31 日。 |
TIME | 时间。格式:"YYYY-MM-DD hh:mm:ss[.nnnnnnn]"。用于存储时间,精度仅为 100 纳秒。值范围从"00:00:00.0000000"到"23:59:59.9999999"。 |
DATETIMEOFFSET | 日期和时间组合并添加时区基于 UTC(通用时间坐标或格林威治标准时间)的意识。格式:"YYYY-MM-DD hh:mm:ss[.nnnnnnn]"[{+|-}hh:mm]。它支持的范围从 0001 年 1 月 1 日到 9999 年 12 月 31 日,精度为 100 纳秒。 |
SMALLDATETIME | 日期和时间组合。格式:"YYYY-MM-DD hh:mm:ss"。支持范围从1900年1月1日到2079年6月6日,精度为1分钟。 |
其他数据类型
数据类型 | 描述 |
---|
sql_variant | 用于除text、timestamp 和ntext 之外的各种数据类型。它最多可存储 8000 字节的数据。 |
XML | 存储 XML 格式的数据。最大 2GB。 |
cursor | 存储对用于数据库操作的游标的引用。 |
hierarchyid | 可变长度的系统数据类型。用于表示层次结构中的位置。 |
rowversion | 通常用作版本标记表行的机制。存储大小为8字节。 |
table | 存储结果集以供以后处理。 |
uniqueidentifier | 存储GUID(全局唯一标识符)。 |
Spatial Geometry Types
| 用于表示平面坐标系中的数据。 |
Spatial Geography Types
| 用于存储椭球体(圆形地球)数据,例如GPS纬度和经度坐标。 |