SQL中常见的数据类型有哪些?如何正确使用它们

来源:建站教程作者:IT小魔仙头衔:程序员
导读:本期聚焦于小伙伴创作的《SQL中常见的数据类型有哪些?如何正确使用它们》,敬请观看详情,探索知识的价值。以下视频、文章将为您系统阐述其核心内容与价值。如果您觉得《SQL中常见的数据类型有哪些?如何正确使用它们》有用,将其分享出去将是对创作者最好的鼓励。

SQL数据类型定义了表中字段可以存储的数据格式和范围,合理选择数据类型能够减少存储空间的占用,同时保证数据的准确性和查询效率。不同的数据库产品对数据类型的支持略有差异,但核心的常用类型基本通用。

SQL中常见的数据类型有哪些?如何正确使用它们

整数类型

整数类型用于存储没有小数部分的数值,不同的整数类型存储的字节数和数值范围不同,需要根据实际存储的数值范围选择。

  • TINYINT:占用1字节,有符号范围是-128到127,无符号范围是0到255,适合存储年龄、状态标识等小范围整数。
  • SMALLINT:占用2字节,有符号范围是-32768到32767,无符号范围是0到65535,适合存储数量较少的计数数据。
  • INT:占用4字节,有符号范围是-2147483648到2147483647,无符号范围是0到4294967295,是最常用的整数类型,适合大部分常规整数场景。
  • BIGINT:占用8字节,适合存储超大规模的整数,比如自增主键的ID值增长较快的场景。

下面是创建用户表时使用整数类型的示例:

-- 创建用户表,使用不同整数类型存储不同字段
CREATE TABLE user_info (
    user_id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '用户ID,使用BIGINT避免ID溢出',
    age TINYINT UNSIGNED COMMENT '用户年龄,无符号TINYINT足够存储',
    status SMALLINT COMMENT '用户状态,SMALLINT存储状态标识',
    create_time INT COMMENT '创建时间戳,INT存储10位时间戳足够'
);

字符串类型

字符串类型用于存储文本数据,不同类型的字符串在存储方式、长度限制和适用场景上有明显区别。

类型名称存储方式长度限制适用场景
CHAR(n)固定长度存储n最大为255存储长度固定的字符串,比如手机号、身份证号
VARCHAR(n)可变长度存储n最大为65535(受字符集影响)存储长度不固定的文本,比如用户名、地址
TEXT可变长度存储最大存储64KB数据存储较长的文本内容,比如文章正文、备注信息

字符串类型的使用示例如下:

-- 创建文章表,使用不同字符串类型存储不同字段
CREATE TABLE article (
    article_id INT PRIMARY KEY AUTO_INCREMENT COMMENT '文章ID',
    title VARCHAR(200) NOT NULL COMMENT '文章标题,长度不固定用VARCHAR',
    content TEXT COMMENT '文章内容,较长文本用TEXT',
    author_phone CHAR(11) NOT NULL COMMENT '作者手机号,固定11位用CHAR'
);

日期时间类型

日期时间类型用于存储时间和日期相关的数据,不同数据库的类型名称略有差异,以下以MySQL为例说明。

  • DATE:存储日期,格式为YYYY-MM-DD,范围从1000-01-01到9999-12-31,适合存储生日、订单日期等只需要日期的场景。
  • TIME:存储时间,格式为HH:MM:SS,适合存储时长、具体时刻等场景。
  • DATETIME:存储日期和时间,格式为YYYY-MM-DD HH:MM:SS,范围从1000-01-01 00:00:00到9999-12-31 23:59:59,适合存储精确的创建、更新时间。
  • TIMESTAMP:存储时间戳,范围从1970-01-01 00:00:01到2038-01-19 03:14:07,会自动跟随时区转换,适合需要跨时区使用的场景。

日期时间类型的使用示例:

-- 创建订单表,使用日期时间类型存储相关时间字段
CREATE TABLE order_info (
    order_id INT PRIMARY KEY AUTO_INCREMENT COMMENT '订单ID',
    order_date DATE NOT NULL COMMENT '下单日期,只需要日期用DATE',
    order_time DATETIME NOT NULL COMMENT '下单精确时间,用DATETIME',
    deliver_time TIMESTAMP COMMENT '配送时间,跨时区场景用TIMESTAMP'
);

浮点与定点类型

浮点类型用于存储带小数的数值,需要注意精度问题,避免计算误差。

  • FLOAT:单精度浮点型,占用4字节,精度约为7位有效数字,适合存储对精度要求不高的小数,比如身高、体重。
  • DOUBLE:双精度浮点型,占用8字节,精度约为15位有效数字,适合存储大部分需要小数的场景。
  • DECIMAL(m,d):定点类型,m是总位数,d是小数位数,精度完全准确,适合存储货币、金额等对精度要求极高的场景。

浮点类型的使用示例:

-- 创建商品表,使用不同浮点类型存储价格和重量
CREATE TABLE product (
    product_id INT PRIMARY KEY AUTO_INCREMENT COMMENT '商品ID',
    price DECIMAL(10,2) NOT NULL COMMENT '商品价格,金额用DECIMAL保证精度',
    weight FLOAT COMMENT '商品重量,对精度要求不高用FLOAT',
    length DOUBLE COMMENT '商品长度,需要更高精度用DOUBLE'
);

数据类型使用注意事项

在实际使用SQL数据类型时,需要注意以下几点,避免出现不必要的问题:

  • 不要过度使用大类型,比如存储年龄用TINYINT就足够,不需要用INT,避免浪费存储空间。
  • 存储金额类数据时,绝对不要使用FLOAT或者DOUBLE,必须使用DECIMAL类型,防止精度丢失导致金额计算错误。
  • 字符串类型的长度设置要合理,VARCHAR的长度不要设置过大,会影响索引效率和查询性能。
  • 不同数据库的数据类型名称可能不同,比如SQL Server中没有DECIMAL的别名NUMERIC,使用时需要根据对应数据库的文档调整。
合理选择SQL数据类型是数据库设计的重要环节,在设计表结构时,需要先明确每个字段的实际存储需求,再匹配对应的数据类型,能够有效提升数据库的性能和稳定性。

SQL数据类型整数类型字符串类型日期时间类型浮点类型修改时间:2026-06-06 00:14:25

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。