MySQL 数据类型深度解析

发布时间:2026/5/20 5:08:45

MySQL 数据类型深度解析 在MySQL中**数据类型Data Types**决定了表字段能够存储什么样的数据以及占用多少存储空间。合理选择数据类型可以提高性能、节省空间并避免数据错误。下面是一份MySQL 数据类型深度解析。一、MySQL 数据类型分类MySQL 数据类型主要分为 5 大类类型说明数值类型存储整数和浮点数字符串类型存储文本日期时间类型存储时间日期二进制类型存储二进制数据JSON 类型存储 JSON 数据二、数值类型Numeric Types1 整数类型Integer类型字节范围有符号TINYINT1-128 ~ 127SMALLINT2-32768 ~ 32767MEDIUMINT3-8388608 ~ 8388607INT4±21亿BIGINT8±9.22e18示例CREATETABLEusers(idINTPRIMARYKEYAUTO_INCREMENT,ageTINYINT,scoreSMALLINT);常见使用场景推荐年龄TINYINT用户IDBIGINT数量INT2 浮点类型类型说明FLOAT单精度DOUBLE双精度DECIMAL高精度示例priceDECIMAL(10,2)含义总共10位 小数2位例99999999.99推荐场景类型金额DECIMAL科学计算DOUBLE⚠️ 金额不要使用 FLOAT / DOUBLE。三、字符串类型String Types1 CHAR固定长度字符串。CHAR(10)特点长度固定查询速度快空间浪费适合性别 国家代码 状态码2 VARCHAR可变长度字符串。VARCHAR(255)特点节省空间查询略慢适合用户名 邮箱 地址推荐场景类型短文本VARCHAR固定长度CHAR3 TEXT存储长文本。类型最大大小TINYTEXT255BTEXT64KBMEDIUMTEXT16MBLONGTEXT4GB示例contentTEXT常用于文章内容 评论 日志四、日期时间类型MySQL 提供多种时间类型。类型格式DATEYYYY-MM-DDTIMEHH:MM:SSDATETIMEYYYY-MM-DD HH:MM:SSTIMESTAMP时间戳YEAR年1 DATETIMEcreate_timeDATETIME范围1000-01-01 9999-12-312 TIMESTAMP特点自动记录时间占 4 字节时区相关示例create_timeTIMESTAMPDEFAULTCURRENT_TIMESTAMP常用于创建时间 更新时间五、枚举类型ENUMENUM 是单选值类型。genderENUM(male,female)优点节省空间限制合法值缺点修改比较麻烦六、JSON 类型从 MySQL 5.7 开始支持 JSON。示例info JSON存储{name:Tom,age:20}查询SELECTinfo-$.nameFROMusers;适合动态字段 配置数据 日志七、二进制类型用于存储文件或二进制数据。类型用途BLOB二进制数据LONGBLOB大文件示例file_dataBLOB一般用于图片 音频 文件但实际开发通常存文件路径。八、数据类型选择最佳实践1 数值尽量用整数❌price FLOAT✅price DECIMAL(10,2)2 VARCHAR 不要过大❌VARCHAR(2000)推荐VARCHAR(255)3 ID 推荐 BIGINTidBIGINTPRIMARYKEYAUTO_INCREMENT适合高并发系统。4 时间字段推荐create_timeDATETIMEupdate_timeDATETIME九、完整建表示例CREATETABLEusers(idBIGINTPRIMARYKEYAUTO_INCREMENT,usernameVARCHAR(50)NOTNULL,passwordVARCHAR(100)NOTNULL,emailVARCHAR(100),ageTINYINT,balanceDECIMAL(10,2),genderENUM(male,female),create_timeDATETIMEDEFAULTCURRENT_TIMESTAMP,update_timeDATETIMEDEFAULTCURRENT_TIMESTAMPONUPDATECURRENT_TIMESTAMP);十、开发中最常见数据类型类型用途BIGINTIDINT数量VARCHAR文本TEXT长文本DECIMAL金额DATETIME时间JSON半结构数据✅一句话总结MySQL 数据类型选择原则整数用最小 字符串用 VARCHAR 金额用 DECIMAL 时间用 DATETIME 大文本用 TEXT如果你愿意我可以再给你一份MySQL 数据库表设计规范阿里巴巴版 大厂标准面试和实际开发都在用。

相关新闻