news 2026/6/1 18:41:52

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/5/30 9:32:55

为什么你的目标客户总不买单?

很多销售人员坚信自己找到了正确的“目标客户”,这些客户行业匹配、规模相当,也有采购方面的需求,可是对方就是不成交,问题往往并不出在客户身上,而是在于销售人员对“目标”的理解太过表面,真正的原因&…

作者头像 李华
网站建设 2026/5/28 12:43:18

如何快速创建SPIFFS映像:嵌入式文件系统工具完全指南

如何快速创建SPIFFS映像:嵌入式文件系统工具完全指南 【免费下载链接】mkspiffs Tool to build and unpack SPIFFS images 项目地址: https://gitcode.com/gh_mirrors/mk/mkspiffs SPIFFS映像工具是嵌入式开发中不可或缺的利器,它专门用于构建和提…

作者头像 李华
网站建设 2026/5/29 20:32:54

WebDriverAgent终极配置指南:轻松实现iOS自动化测试

WebDriverAgent终极配置指南:轻松实现iOS自动化测试 【免费下载链接】WebDriverAgent A WebDriver server for iOS that runs inside the Simulator. 项目地址: https://gitcode.com/gh_mirrors/we/WebDriverAgent 从零开始构建完整的iOS自动化测试环境 Web…

作者头像 李华
网站建设 2026/5/31 7:45:37

14、Mac应用程序概览

Mac应用程序概览 1. Safari浏览器 Safari是Mac系统自带的网页浏览器,相当于Windows系统中的Internet Explorer。对于好奇Safari如何工作的Windows用户,可以在www.apple.com/safari下载适用于Windows的版本。 默认情况下,Safari位于Mac的Dock栏,也可以在“应用程序”文件…

作者头像 李华
网站建设 2026/5/28 12:11:07

Open-AutoGLM本地化实战(从零到一完整部署方案)

第一章:Open-AutoGLM本地化部署概述 Open-AutoGLM 是一个开源的自动化生成语言模型工具,支持本地化部署以保障数据隐私与系统可控性。通过在私有环境中运行该模型,企业或开发者可在不依赖云端服务的前提下完成文本生成、智能问答等任务&#…

作者头像 李华
网站建设 2026/5/31 6:45:10

数字化智慧园区建设方案(PPT)

为什么要建设智慧园区?顺应数字化转型趋势:随着智能世界的发展,智慧园区成为智慧城市的缩影,推动园区“经济、生活、治理”全面数字化转型。提升管理效率和服务质量:通过智慧化手段,实现园区基础设施及设备…

作者头像 李华