当前位置:首页 > 问答 > 正文

SQL Server 数据类型 25种SQL Server数据类型的列举

SQL Server | 数据类型:25种SQL Server数据类型的完整指南

2025年7月更新:微软近期宣布SQL Server 2024将引入对JSON数据类型的原生优化支持,显著提升查询性能,这一更新再次凸显了数据类型选择在数据库设计中的重要性。

在SQL Server中,数据类型决定了数据如何存储、处理以及占用多少空间,选错类型可能导致存储浪费、性能下降甚至数据丢失,本文将用通俗易懂的方式介绍SQL Server中的25种核心数据类型,帮你做出明智选择。


精确数字类型(整数)

  1. TINYINT

    • 范围:0到255
    • 存储:1字节
    • 场景:年龄、状态码(如开关状态)
  2. SMALLINT

    • 范围:-32,768到32,767
    • 存储:2字节
    • 场景:小型ID、温度值
  3. INT

    • 范围:-21亿到21亿
    • 存储:4字节
    • 场景:最常用的整数类型(用户ID、订单号)
  4. BIGINT

    • 范围:-9,223,372,036,854,775,808到9,223,372,036,854,775,807
    • 存储:8字节
    • 场景:天文数字(如全球交易流水号)

精确数字类型(小数)

  1. DECIMAL(p,s) / NUMERIC(p,s)

    • 精度(p):总位数(1-38)
    • 小数位(s):小数点后位数
    • 存储:5-17字节
    • 场景:金融金额(如DECIMAL(19,4))
  2. MONEY

    • 范围:-922,337,203,685,477.5808到922,337,203,685,477.5807
    • 存储:8字节
    • 场景:快速货币计算(内置四舍五入)
  3. SMALLMONEY

    • 范围:-214,748.3648到214,748.3647
    • 存储:4字节
    • 场景:小型货币值

近似数字类型

  1. FLOAT(n)

    • 范围:±1.79E+308(n=53时)
    • 存储:4或8字节
    • 场景:科学计算(容忍微小误差)
  2. REAL

    • 范围:±3.40E+38
    • 存储:4字节
    • 场景:快速浮点运算(精度低于FLOAT)

日期时间类型

  1. DATE

    SQL Server 数据类型 25种SQL Server数据类型的列举

    • 范围:0001-01-01到9999-12-31
    • 存储:3字节
    • 场景:生日、注册日期
  2. TIME(n)

    • 精度(n):小数秒位数(0-7)
    • 存储:3-5字节
    • 场景:计时器、比赛成绩
  3. DATETIME

    • 范围:1753-01-01到9999-12-31
    • 精度:3.33毫秒
    • 存储:8字节
    • 场景:传统时间戳(兼容旧系统)
  4. DATETIME2(n)

    • 范围:0001-01-01到9999-12-31
    • 精度:100纳秒
    • 存储:6-8字节
    • 场景:现代应用首选
  5. SMALLDATETIME

    • 范围:1900-01-01到2079-06-06
    • 精度:1分钟
    • 存储:4字节
    • 场景:低精度日志记录
  6. DATETIMEOFFSET(n)

    • 带时区信息
    • 存储:10字节
    • 场景:全球化系统(如跨国会议时间)

字符类型

  1. CHAR(n)

    • 固定长度(1-8000字符)
    • 存储:n字节
    • 场景:邮编、固定长度代码(如CHAR(10))
  2. VARCHAR(n)

    • 可变长度(1-8000字符)
    • 存储:实际长度+2字节
    • 场景:姓名、地址(节省空间)
  3. VARCHAR(MAX)

    SQL Server 数据类型 25种SQL Server数据类型的列举

    • 最大2GB
    • 场景:长文本(如文章内容)
  4. TEXT

    已弃用(用VARCHAR(MAX)替代)

  5. NCHAR(n) / NVARCHAR(n)

    • Unicode版本(支持多语言)
    • 存储:CHAR占2n字节
    • 场景:中文、阿拉伯语等

二进制类型

  1. BINARY(n)

    • 固定长度二进制(1-8000字节)
    • 场景:加密哈希值(如BINARY(32))
  2. VARBINARY(n)

    • 可变长度二进制
    • 场景:存储文件片段
  3. VARBINARY(MAX)

    • 最大2GB
    • 场景:图片、PDF存储
  4. IMAGE

    已弃用(用VARBINARY(MAX)替代)

    SQL Server 数据类型 25种SQL Server数据类型的列举


其他特殊类型

  1. UNIQUEIDENTIFIER

    • 16字节GUID
    • 场景:分布式系统唯一标识
  2. SQL_VARIANT

    存储任何类型(慎用!性能差)

  3. XML

    • 结构化XML数据
    • 场景:配置存储
  4. JSON

    • SQL Server 2016+原生支持
    • 场景:API数据交互

如何选择数据类型?

  • 整数:根据范围选最小的(TINYINT→BIGINT)
  • 小数:精确计算用DECIMAL,科学计算用FLOAT
  • 时间:新项目用DATETIME2,需要时区用DATETIMEOFFSET
  • 文本:ASCII用VARCHAR,多语言用NVARCHAR

数据类型一旦设定,后期修改可能代价高昂——设计时务必深思熟虑!

(注:本文基于SQL Server 2024版本,部分特性在旧版中可能不存在)

发表评论