数字(共12个)
TINYINT
存储空间:1 字节
最小值:-128(有符号),0(无符号)
最大值:127(有符号),255(无符号)
有符号和无符号整数类型,适用于存储较小的数值,如状态码、枚举值等。在 MySQL 8.0 中,定义数据超过范围会默认取最大值。
典型场景:性别(0/1)、月份(1-12)
SMALLINT
存储空间:2 字节
最小值:-32768(有符号),0(无符号)
最大值:32767(有符号),65535(无符号)
有符号和无符号整数类型,比 TINYINT 能存储更大范围的数值,常用于存储中等大小的整数。
典型场景:商品库存数量、用户评分等
MEDIUMINT
存储空间:3 字节
最小值:-8388608(有符号),0(无符号)
最大值:8388607(有符号),16777215(无符号)
有符号和无符号整数类型,存储范围介于 SMALLINT 和 INT 之间,适合存储较大的整数。
典型场景:网站访问量统计、较大的计数等
INT
存储空间:4 字节
最小值:-2147483648(有符号),0(无符号)
最大值:2147483647(有符号),4294967295(无符号)
有符号和无符号整数类型,是最常用的整数类型,能满足大多数整数存储需求。
典型场景:用户 ID、订单编号等
BIGINT
存储空间:8 字节
最小值:-9223372036854775808(有符号),0(无符号)
最大值:9223372036854775807(有符号),18446744073709551615(无符号)
有符号和无符号整数类型,用于存储非常大的整数,如时间戳、大型计数器等。
典型场景:数据库中的全局唯一标识符、长整型时间戳等
DECIMAL
存储空间:取决于精度和标度
最小值:取决于精度和标度
最大值:取决于精度和标度
固定精度的浮点数类型,用于存储精确的小数值,不会出现浮点数计算误差。常用于金融领域等对精度要求较高的场景。
典型场景:商品价格、账户余额等
FLOAT
存储空间:4 字节
最小值:±1.175494351E-38
最大值:±3.402823466E+38
单精度浮点数类型,用于存储近似的小数值,精度相对较低,但存储空间较小。
典型场景:科学计算中的近似值、地图坐标等
DOUBLE
存储空间:8 字节
最小值:±2.2250738585072014E-308
最大值:±1.7976931348623157E+308
双精度浮点数类型,精度比 FLOAT 更高,能存储更精确的近似小数值,但占用空间也更大。
典型场景:高精度的科学计算、复杂的统计分析等
REAL
存储空间:4 字节(默认)或 8 字节(在 SQL 模式中启用 REAL_AS_FLOAT 时为 4 字节,否则为 8 字节)
最小值:取决于存储类型
最大值:取决于存储类型
浮点数类型,默认情况下等同于 DOUBLE。在某些 SQL 模式下,可能等同于 FLOAT。
典型场景:根据实际需求选择等同于 FLOAT 或 DOUBLE 的场景
BIT
存储空间:1 到 8 字节,取决于定义的位数(最大 64 位)
最小值:0
最大值:2^n - 1(n 为定义的位数)
位数据类型,用于存储位值,每个位可以是 0 或 1。可以存储多个布尔值或标志位。
典型场景:存储用户权限标志、多个开关状态等
BOOLEAN
存储空间:1 字节
最小值:0(代表 FALSE)
最大值:1(代表 TRUE)
布尔数据类型,用于存储布尔值,实际上是 TINYINT(1) 的别名。
典型场景:存储逻辑判断结果,如用户是否在线、是否已验证等
SERIAL
存储空间:8 字节
最小值:1
最大值:18446744073709551615
无符号 BIGINT AUTO_INCREMENT NOT NULL 的别名,用于自动生成唯一的序列号。
典型场景:作为表的主键,自动生成唯一的记录编号
日期与时间(共5个)
DATE
存储空间:3 字节
最小值:0001-01-01
最大值:9999-12-31
仅存储日期部分,不包含时间,适用于只需要日期信息的场景。
典型场景:出生日期、入职日期
DATETIME
存储空间:5 字节(精确到秒)或 8 字节(精确到微秒)
最小值:1000-01-01 00:00:00
最大值:9999-12-31 23:59:59
存储日期和时间信息,不受时区影响,能精确到秒或微秒。
典型场景:记录事件发生的具体时间,如订单创建时间、文章发布时间等
TIMESTAMP
存储空间:4 字节(精确到秒)或 7 字节(精确到微秒)
最小值:1970-01-01 00:00:01 UTC
最大值:2038-01-19 03:14:07 UTC
存储日期和时间信息,受时区影响,会根据系统时区进行转换。常用于记录数据的修改时间,会自动更新。
典型场景:记录数据的最后修改时间,如用户资料的最后更新时间等
TIME
存储空间:3 字节(精确到秒)或 6 字节(精确到微秒)
最小值:-838:59:59
最大值:838:59:59
仅存储时间部分,可以表示负数时间,用于表示时间段或持续时间。
典型场景:记录电影播放时长、任务执行时间等
YEAR
存储空间:1 字节
最小值:1901
最大值:2155
仅存储年份信息,用于只需要年份的场景。
典型场景:记录产品生产年份、毕业年份等
文本类型(共14个)
CHAR
类型:固定长度
推荐编码:UTF-8、GBK
最大长度:255 字节(根据字符集不同,存储的字符数可能不同)
固定长度字符串类型,不足长度时会自动填充空格,适合存储长度固定的数据,如身份证号、性别等。检索速度较快。
典型场景:身份证号、性别、邮政编码等
VARCHAR
类型:可变长度
推荐编码:UTF-8、GBK
最大长度:65535 字节(实际长度受行最大长度限制)
可变长度字符串类型,只存储实际输入的字符,不会填充空格,节省存储空间。适合存储长度不固定的数据。
典型场景:用户名、文章标题、商品名称等
TINYTEXT
类型:可变长度
推荐编码:UTF-8、GBK
最大长度:255 字节
可变长度文本类型,用于存储较短的文本内容,如简短的描述、备注等。
典型场景:文章摘要、商品简短描述等
TEXT
类型:可变长度
推荐编码:UTF-8、GBK
最大长度:65535 字节
可变长度文本类型,用于存储较长的文本内容,如文章正文、产品详细描述等。
典型场景:文章正文、产品详细介绍、用户评论等
MEDIUMTEXT
类型:可变长度
推荐编码:UTF-8、GBK
最大长度:16777215 字节
可变长度文本类型,用于存储非常长的文本内容,如长篇小说、大型文档等。
典型场景:长篇小说、技术文档、法律条款等
LONGTEXT
类型:可变长度
推荐编码:UTF-8、GBK
最大长度:4294967295 字节
可变长度文本类型,用于存储极长的文本内容,是 MySQL 中最大的文本类型。
典型场景:大型知识库、历史档案等
BINARY
类型:固定长度二进制数据
推荐编码:无(二进制数据)
最大长度:255 字节
固定长度二进制数据类型,不足长度时会自动填充 \0 字节,适合存储固定长度的二进制数据,如加密密钥、哈希值等。
典型场景:加密密钥、哈希值、指纹数据等
VARBINARY
类型:可变长度二进制数据
推荐编码:无(二进制数据)
最大长度:65535 字节(实际长度受行最大长度限制)
可变长度二进制数据类型,只存储实际输入的二进制数据,不会填充 \0 字节,节省存储空间。适合存储长度不固定的二进制数据。
典型场景:图片缩略图、音频片段等
TINYBLOB
类型:可变长度二进制数据
推荐编码:无(二进制数据)
最大长度:255 字节
可变长度二进制数据类型,用于存储较小的二进制数据,如小图标、小型附件等。
典型场景:小图标、小型附件等
MEDIUMBLOB
类型:可变长度二进制数据
推荐编码:无(二进制数据)
最大长度:16777215 字节
可变长度二进制数据类型,用于存储中等大小的二进制数据,如图片、音频文件等。
典型场景:图片、音频文件、小型视频等
BLOB
类型:可变长度二进制数据
推荐编码:无(二进制数据)
最大长度:65535 字节
可变长度二进制数据类型,用于存储较大的二进制数据,如大型图片、音频文件等。
典型场景:大型图片、音频文件、中等大小的视频等
LONGBLOB
类型:可变长度二进制数据
推荐编码:无(二进制数据)
最大长度:4294967295 字节
可变长度二进制数据类型,用于存储非常大的二进制数据,如高清视频、大型数据库备份等。
典型场景:高清视频、大型数据库备份、大型软件安装包等
ENUM
类型:枚举类型
推荐编码:根据存储的字符集而定
最大长度:255 个成员(存储为 1 或 2 字节,取决于成员数量)
枚举类型,用于存储预定义的一组值,只能从列表中选择一个值。可以节省存储空间,提高查询效率。
典型场景:性别(男、女)、订单状态(待付款、已付款、已发货等)
SET
类型:集合类型
推荐编码:根据存储的字符集而定
最大长度:64 个成员(存储为 1 到 8 字节,取决于成员数量)
集合类型,用于存储预定义的一组值,可以从列表中选择零个或多个值。
典型场景:用户兴趣爱好(读书、运动、音乐等)、商品标签等
空间(共8个)
GEOMETRY
类型:空间数据类型,可存储任意几何对象
最大长度:最大 4GB
通用的空间数据类型,可以存储各种几何对象,如点、线、多边形等。
典型场景:地理信息系统(GIS)中存储地图数据、地理位置等
POINT
类型:空间数据类型,存储单个点的坐标
最大长度:最大 4GB
用于存储单个点的坐标,通常表示地理位置,如商店的经纬度。
典型场景:地图上的标记点、店铺位置等
LINESTRING
类型:空间数据类型,存储一系列点连接而成的线
最大长度:最大 4GB
用于存储一系列点连接而成的线,如道路、河流等。
典型场景:道路路线、河流走向等
POLYGON
类型:空间数据类型,存储由一系列点连接而成的封闭多边形
最大长度:最大 4GB
用于存储由一系列点连接而成的封闭多边形,如行政区划、土地边界等。
典型场景:行政区划边界、土地地块范围等
MULTIPOINT
类型:空间数据类型,存储多个点的集合
最大长度:最大 4GB
用于存储多个点的集合,如多个商店的位置、多个兴趣点等。
典型场景:多个商店的地理位置、多个景点位置等
MULTILINESTRING
类型:空间数据类型,存储多个线的集合
最大长度:最大 4GB
用于存储多个线的集合,如多条道路、多条河流等。
典型场景:城市中的多条道路、多条河流等
MULTIPOLYGON
类型:空间数据类型,存储多个多边形的集合
最大长度:最大 4GB
用于存储多个多边形的集合,如多个行政区划、多个土地地块等。
典型场景:多个国家的边界、多个工业园区的范围等
GEOMETRYCOLLECTION
类型:空间数据类型,存储多个几何对象的集合
最大长度:最大 4GB
用于存储多个几何对象的集合,可以包含点、线、多边形等不同类型的几何对象。
典型场景:复杂的地理信息数据,如城市地图包含道路、建筑物、公园等多种几何对象
其他(共1个)
JSON
类型:JSON 数据类型
最大长度:最大 4GB
用于存储 JSON 格式的数据,可以方便地进行 JSON 数据的存储、查询和操作。
典型场景:存储非结构化数据,如用户配置信息、产品属性等