news 2026/8/23 17:21:30

SQL 常用数据类型汇总

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
SQL 常用数据类型汇总

SQL 数据类型是数据库表设计的核心,用于定义列的存储格式、取值范围和运算规则。不同数据库(MySQL、SQL Server、PostgreSQL)虽有方言差异,但核心类型分类一致。本文按数值型、字符串型、日期时间型、二进制型、特殊类型五大类梳理常用类型,并说明跨库差异与选型原则。

一、数值类型

用于存储数字,核心关注取值范围精度,分为整数、浮点(近似值)、定点(精确值)三类。

1. 整数类型

存储无小数部分的数字,按字节数划分不同范围,需根据实际数值大小选择。

2. 浮点类型(近似值)

基于二进制存储小数,存在精度丢失,适用于对精度要求不高的场景(如身高、温度)。

3. 定点类型(精确值)

以字符串形式存储小数,无精度丢失,是金额、税率等高精度数值的首选。

二、字符串类型

用于存储文本数据,核心关注长度限制存储效率,分为定长、变长、大文本三类。

1. 定长字符串:CHAR

  • 语法:CHAR(N),N 为字符数(MySQL 中 N 范围 1~255);
  • 特点:无论实际存储多少字符,均占用 N 个字符空间,查询速度快;
  • 适用场景:短且长度固定的字符串(如手机号、身份证号、邮编)。

2. 变长字符串:VARCHAR

  • 语法:VARCHAR(N),N 为字符数;
  • 特点:仅占用实际字符数 + 1~2 字节的存储空间,节省空间;
  • 适用场景:长度不固定的短字符串(如用户名、商品名称、地址)。

跨库差异

  • MySQL:VARCHAR最大长度受行大小(65535 字节)限制;
  • SQL Server:VARCHAR(N)为非 Unicode 字符,NVARCHAR(N)为 Unicode 字符(支持中文);
  • PostgreSQL:VARCHAR(N)无性能损耗,也可直接用VARCHAR(无长度限制)。

3. 大文本类型

用于存储超长文本(如文章内容、商品详情),不同数据库的类型名称差异较大。

4. 特殊字符串类型

  • 枚举类型ENUM(MySQL 特有):存储预定义的枚举值,只能选其一,节省空间。
  • 集合类型SET(MySQL 特有):存储多个预定义值(最多 64 个),可多选。

三、日期时间类型

用于存储日期和时间,核心关注时间范围精度,跨库差异较明显。

关键对比

  • DATETIME:存储绝对时间,不受时区影响,范围大;
  • TIMESTAMP:存储相对时间(从 1970-01-01 开始的秒数),受时区影响,范围小。

四、二进制类型

用于存储二进制数据(如图片、音频、序列化数据),不建议直接存储大文件(推荐存储文件路径)。

五、数据类型选型建议

  1. 最小化原则:选择能容纳数据的最小类型(如状态用TINYINT而非INT),节省空间并提升查询效率。
  2. 金额必用定点数DECIMAL/NUMERIC是唯一选择,避免浮点数精度丢失。
  3. 字符串选型
    • 长度固定:用CHAR(如手机号);
    • 长度可变且短:用VARCHAR(如用户名);
    • 超长文本:用TEXT/VARCHAR(MAX)(如文章)。
  4. 日期时间选型
    • 记录创建 / 修改时间:MySQL 用TIMESTAMP(自动更新),其他数据库用DATETIME2
    • 仅存日期:用DATE,避免冗余。
  5. 二进制数据:尽量存储文件 URL(如云存储地址),而非直接存储二进制数据。
  6. 唯一标识:单库用自增INT/BIGINT,分布式系统用UUID

总结

SQL 数据类型的选择直接影响数据库的存储效率、查询性能和数据完整性。核心原则是匹配数据的实际特征:根据数值范围选数值类型,根据文本长度选字符串类型,根据时间精度选日期时间类型。同时需兼顾不同数据库的方言差异,确保表结构的可移植性。掌握常用类型的特性,是设计高效数据库表结构的基础。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/20 17:28:46

无需编译!直接运行FaceFusion镜像,快速接入AI换脸能力

无需编译!直接运行FaceFusion镜像,快速接入AI换脸能力 在短视频和数字人内容爆发的今天,一个热门挑战浮出水面:如何让非算法背景的开发者也能轻松实现高质量的人脸替换?传统方案动辄需要配置CUDA环境、编译PyTorch扩展…

作者头像 李华
网站建设 2026/8/22 11:50:20

FaceFusion镜像支持OAuth2认证?多租户管理系统搭建

FaceFusion镜像支持OAuth2认证?多租户管理系统搭建 在AI生成内容(AIGC)爆发式增长的今天,人脸替换技术早已不再是实验室里的概念玩具。从短视频平台上的“一键换脸”特效,到影视工业中用于修复老片或实现数字替身&…

作者头像 李华
网站建设 2026/8/23 9:41:09

G3N引擎终极指南:Go语言3D游戏开发快速上手教程

G3N引擎终极指南:Go语言3D游戏开发快速上手教程 【免费下载链接】engine Go 3D Game Engine (http://g3n.rocks) 项目地址: https://gitcode.com/gh_mirrors/engin/engine G3N(发音为"gen")是一个功能强大的Go语言3D游戏引擎…

作者头像 李华
网站建设 2026/8/22 7:32:43

告别数据库变更焦虑:Atlas如何重塑现代开发者的工作流

告别数据库变更焦虑:Atlas如何重塑现代开发者的工作流 【免费下载链接】atlas A modern tool for managing database schemas 项目地址: https://gitcode.com/gh_mirrors/atlas2/atlas 作为一名数据库开发者,你是否曾经经历过这样的场景&#xff…

作者头像 李华
网站建设 2026/8/23 12:30:10

从零开始:Knockout.js无障碍屏幕阅读器测试完全指南

从零开始:Knockout.js无障碍屏幕阅读器测试完全指南 【免费下载链接】knockout Knockout makes it easier to create rich, responsive UIs with JavaScript 项目地址: https://gitcode.com/gh_mirrors/kn/knockout 在当今数字化时代,构建对所有人…

作者头像 李华
网站建设 2026/8/22 1:50:31

7步掌握GODEL:微软开源的目标导向对话模型终极指南

7步掌握GODEL:微软开源的目标导向对话模型终极指南 【免费下载链接】GODEL Large-scale pretrained models for goal-directed dialog 项目地址: https://gitcode.com/gh_mirrors/go/GODEL GODEL是微软开源的大规模预训练目标导向对话模型,专注于…

作者头像 李华