MySQL_数据表

MySQL 数据表


基本单位-列

列定义了表中数据的类型和属性
选择合适的数据类型可以节省存储空间并提高查询性能

列类型

数值类型

类型 字节 (Byte) 范围
(有符号)
说明
TINYINT 1 -128 ~ 127 常用于状态码、布尔值
SMALLINT 2 -32,768 ~ 32,767 较小的计数
MEDIUMINT 3 -838 万 ~ 838 万 较少用
INT 4 -21 亿 ~ 21 亿 最常用,用户ID等
BIGINT 8 -922 亿亿 ~ 922 亿亿 超大数值,如订单号、主键
FLOAT 4 单精度 近似值,存在精度丢失
DOUBLE 8 双精度 近似值,精度高于FLOAT
DECIMAL M+2 精确值 金额首选
M为总位数,D为小数位

#注意

字符串类型

类型 特点 适用场景
CHAR 固定长度 存储长度固定的数据,检索速度快
VARCHAR 可变长度 存储长度不定的数据,节省空间
TINYTEXT 0-255 字节 短文本
TEXT 0-64 KB 富文本、文章内容
BLOB 二进制大对象 图片、视频等二进制数据
(不建议直接存库,建议存路径)

#注意
VARCHAR 虽然节省空间,但因为长度可变,更新时可能会产生碎片,需要定期优化。

时间类型

类型 格式 说明
DATE YYYY-MM-DD 仅日期
TIME HH:MM:SS 仅时间,可表示时间段
DATETIME YYYY-MM-DD HH:MM:SS 日期+时间,与时区无关
TIMESTAMP YYYY-MM-DD HH:MM:SS 时间戳受时区影响
YEAR YYYY 年份

NULL 类型

#注意
在统计行数 (COUNT) 或索引时,NULL'' 的行为完全不同
建议尽量使用 NOT NULL 并设置默认值。

其他类型


列属性

属性 说明
UNSIGNED 无符号,禁止负数,数值范围翻倍
ZEROFILL 零填充,不足显示宽度时左侧补零(MySQL 8.0 已弃用)
AUTO_INCREMENT 自增,通常用于主键,每次插入新记录时自动加 1
NOT NULL 该列不能为空值
DEFAULT 设置默认值,插入数据未指定该列时使用
COMMENT 字段注释(开发中非常重要)
Powered by Forestry.md