MySQL 常用数据类型的系统总结

一、数值型(存储数字,含整数、小数、布尔值)

1. 整数类型(INT 系列)

数据类型

字节数

取值范围(有符号)

取值范围(无符号)

核心特性

适用场景

TINYINT

1

-128 ~ 127

0 ~ 255

占用空间最小

状态标记(0/1)、年龄(简化)、评分等级

SMALLINT

2

-32768 ~ 32767

0 ~ 65535

中小型整数

班级人数、序号、金额(分)

MEDIUMINT

3

-8388608 ~ 8388607

0 ~ 16777215

中大型整数

数据量较大的 ID、统计数

INT

4

-2147483648 ~ 2147483647

0 ~ 4294967295

最常用

学生 ID、订单号、成绩、年龄

BIGINT

8

-9e18 ~ 9e18

0 ~ 1.8e19

超大整数

海量数据 ID(如日志 ID)、时间戳(毫秒级)

关键说明

  • 加 UNSIGNED 关键字表示无符号(仅存非负数),如 INT UNSIGNED;
  • 整数类型可指定 ZEROFILL(零填充),如 INT(5) ZEROFILL,不足位数补 0(仅无符号有效)。
2. 小数类型(精确 / 近似小数)

数据类型

字节数

格式说明

核心特性

适用场景

DECIMAL(M,D)

可变

M = 总位数(1~65),D = 小数位数(0~30)

精确小数(无误差)

金额、汇率、分数(如 85.5 分)

FLOAT(M,D)

4

单精度浮点型,M = 总位数,D = 小数位数

近似小数(误差小)

科学计算、非精确统计(如身高、体重)

DOUBLE(M,D)

8

双精度浮点型,精度高于 FLOAT

近似小数(精度高)

工程计算、大数据量浮点存储

示例

  • 金额字段:DECIMAL(10,2)(支持 0.00 ~ 99999999.99);
  • 身高字段:FLOAT(5,1)(支持 0.0 ~ 999.9)。
3. 布尔类型(BOOL/BOOLEAN)
  • 本质是 TINYINT(1) 的别名,仅存 0(假)或 1(真);
  • 示例:is_active BOOLEAN DEFAULT 1(默认启用状态)。

二、字符串型(存储文本、字符,含固定 / 可变长度)

1. 短字符串类型

数据类型

字节数

长度限制

核心特性

适用场景

CHAR(M)

M(1~255)

固定长度(M 为字符数)

存储效率高,查询快

用户名(如 CHAR (20))、手机号(CHAR (11))、性别(CHAR (2))

VARCHAR(M)

可变(1~255)

可变长度(M 为最大字符数)

节省空间

姓名(VARCHAR (20))、地址(VARCHAR (100))、备注(VARCHAR (255))

核心区别

  • CHAR:无论实际存储内容长度,均占用 M 个字符空间(如 CHAR(10) 存 "abc" 仍占 10 字符);
  • VARCHAR:仅占用实际内容长度 + 1~2 字节(记录长度),适合长度不固定的文本。
2. 长文本类型

数据类型

长度限制

核心特性

适用场景

TINYTEXT

0 ~ 255 字符

短文本

简短描述、备注

TEXT

0 ~ 65535 字符

常用长文本

文章内容、详细说明

MEDIUMTEXT

0 ~ 16777215 字符

中长文本

日志数据、大段描述

LONGTEXT

0 ~ 4294967295 字符

超长文本

海量文本(如小说、备份数据)

注意:文本类型不能设置默认值,查询效率低于 CHAR/VARCHAR,不建议用于排序 / 分组(可通过索引优化)。

3. 特殊字符串类型
  • ENUM:枚举类型,只能从指定列表中选一个值,如 gender ENUM('男','女','未知');

适用场景:固定选项(如性别、学历、订单状态),存储效率高(存数字索引)。

  • SET:集合类型,可从指定列表中选多个值(用逗号分隔),如 hobby SET('读书','运动','游戏');

适用场景:多选项(如兴趣爱好),最多支持 64 个选项。

三、日期时间型(存储时间、日期,精确到不同粒度)

数据类型

字节数

取值范围

格式示例

核心特性

适用场景

DATE

3

1000-01-01 ~ 9999-12-31

2025-04-10

仅存日期

生日、注册日期

TIME

3

-838:59:59 ~ 838:59:59

14:30:00

仅存时间

上课时间、打卡时间

DATETIME

8

1000-01-01 00:00:00 ~ 9999-12-31 23:59:59

2025-04-10 14:30:00

日期 + 时间(不受时区影响)

订单创建时间、考试时间

TIMESTAMP

4

1970-01-01 00:00:01 ~ 2038-01-19 03:14:07

2025-04-10 14:30:00

日期 + 时间(受时区影响,自动转换)

日志时间、更新时间

YEAR

1

1901 ~ 2155

2025

仅存年份

入学年份、毕业年份

常用函数

  • 获取当前时间:NOW()(返回 DATETIME)、CURDATE()(返回 DATE)、CURTIME()(返回 TIME);
  • 时间戳转换:UNIX_TIMESTAMP()(DATETIME→时间戳)、FROM_UNIXTIME()(时间戳→DATETIME)。

四、二进制型(存储二进制数据,如文件、图片)

数据类型

长度限制

核心特性

适用场景

TINYBLOB

0 ~ 255 字节

短二进制

小图标、缩略图

BLOB

0 ~ 65535 字节

常用二进制

图片、音频片段

MEDIUMBLOB

0 ~ 16777215 字节

中长二进制

视频、大文件

LONGBLOB

0 ~ 4294967295 字节

超长二进制

超大文件(不推荐,建议存文件路径)

注意:二进制类型存储文件会导致数据库体积膨胀,查询效率低,实际开发中更推荐存储文件的服务器路径(如 /upload/2025/04/10/photo.jpg)。

五、空间类型(GIS 相关,存储地理数据)

  • 常用类型:POINT(点,如经纬度)、LINESTRING(线)、POLYGON(面);
  • 适用场景:地图应用(如店铺位置、路线规划),需配合 MySQL 的 GIS 函数使用(如计算距离)。

六、数据类型选择原则

  1. 最小够用原则:优先选择能满足需求的最小类型(如年龄用 TINYINT 而非 INT,手机号用 CHAR (11) 而非 VARCHAR (20));
  2. 精度匹配原则:金额、分数等需精确计算的场景用 DECIMAL,避免 FLOAT/DOUBLE 的精度误差;
  3. 查询效率原则:频繁查询、排序、分组的字段用 CHAR/VARCHAR,避免 TEXT/BLOB;
  4. 时间场景原则:跨时区用 TIMESTAMP,无需时区转换用 DATETIME,仅存日期用 DATE;
  5. 兼容性原则:避免使用 ENUM/SET(修改选项需 ALTER TABLE),可改用关联表存储固定选项。

Read more

体制内公文写作必看:20个去“AI味”的DeepSeek指令(附示例)

体制内公文写作必看:20个去“AI味”的DeepSeek指令(附示例)

你是否曾经为了写一篇公文,绞尽脑汁,却总觉得差点火候? 你是否曾经羡慕那些体制内的高手,他们的文字总是那么精准、得体,仿佛信手拈来? 你是否曾经怀疑过,AI辅助写作虽然高效,但总感觉缺少了那么一点“人情味”? 在体制内工作,公文写作是一项基本功。随着AI技术的发展,越来越多的朋友开始借助AI来提升写作效率。然而,AI生成的公文往往带有一种“AI味”,生硬、模板化,缺乏个性化和人情味。这对于需要体现严谨性和个性化的体制内公文来说,无疑是一个大忌。 今天,我要和你分享20个DeepSeek指令,这些指令可以帮助你更好地利用AI进行公文写作,同时去除“AI味”,让你的公文更自然、更接地气、更符合体制内公文写作的要求。 一、你的问题,我懂! 你是不是经常遇到这些问题: * AI生成的公文千篇一律,缺乏新意,像是从一个模子里刻出来的。 * AI的语言过于正式、生硬,读起来不自然,缺乏“人情味”。 * AI的逻辑有时不符合体制内公文写作的习惯和规范,需要大量修改。 * 难以用AI表达出自己想要表达的真实意图和情感。 二、有“AI味”原因是啥?

小白也能轻松掌握AI新技能包(Skills),让工作效率飙升!

小白也能轻松掌握AI新技能包(Skills),让工作效率飙升!

Skills是AI的专属技能包,将完成任务步骤、规则打包成标准化“工作手册”。它能大幅提升AI执行效率、结果稳定可靠,且使用门槛低。文章以会议纪要为例,手把手教你3步创建Skills:明确任务目标、设定执行规则、保存为技能包。适用于职场办公、运营推广、财务行政、客服等多种场景,让AI从泛用型助手变为专业型帮手,显著提升工作效率。 最近,“Skills”成为AI领域的热门词,不少人好奇它究竟是什么、为何能火遍职场,今天就用直白的语言,带你清晰了解这个AI新工具。 一、Skills到底是什么? 简单来说,Skills就是给AI定制的专属技能包,相当于把AI完成特定任务的步骤、规则、方法打包整合,形成一套标准化的“工作手册”。 没有Skills的AI,就像没有操作指南的新手,每次执行任务都需要反复交代要求,不仅繁琐还容易出错;而装上对应的Skills后,AI就能按照预设的标准精准执行,无需重复沟通,直接高效完成任务。 二、Skills为什么能爆火? 1. 效率大幅提升:一次设置好技能包,后续重复使用无需调整指令,省去反复沟通的时间,让AI快速响应需求。