<返回目录     Powered by claud/xia兄

第3课: 数据类型

数值类型

MySQL提供了丰富的数值类型,用于存储不同范围的数字数据。选择合适的数值类型对于节省存储空间和提高查询性能非常重要。

MySQL数值类型对比图
类型 大小 有符号范围 无符号范围 用途
TINYINT 1字节 -128 到 127 0 到 255 小整数、状态标记
SMALLINT 2字节 -32768 到 32767 0 到 65535 小整数、ID
MEDIUMINT 3字节 -8388608 到 8388607 0 到 16777215 中等整数
INT 4字节 -2147483648 到 2147483647 0 到 4294967295 常规整数、ID
BIGINT 8字节 -9223372036854775808 到 9223372036854775807 0 到 18446744073709551615 大整数、时间戳
DECIMAL(M,D) 变长 可变 可变 金额、价格、精确计算
FLOAT 4字节 ±1.175494351e-38 到 ±3.402823466e+38 同上 科学计算、精度要求不高的小数
DOUBLE 8字节 ±2.2250738585072014e-308 到 ±1.7976931348623157e+308 同上 科学计算、精度要求较高的小数
数值类型选择原则:
-- 数值类型示例
age TINYINT UNSIGNED,           -- 年龄 0-255
user_id INT AUTO_INCREMENT,     -- 自增ID
price DECIMAL(10,2),            -- 价格 10位数字,2位小数
score FLOAT                     -- 分数

字符串类型

MySQL提供了多种字符串类型,用于存储不同长度和类型的文本数据。选择合适的字符串类型对于存储效率和查询性能至关重要。

MySQL字符串类型对比图
类型 最大长度 存储方式 用途
CHAR(N) 255字符 定长,不足用空格填充 手机号、身份证号、邮编等固定长度数据
VARCHAR(N) 65535字符 变长,存储实际长度+1字节 用户名、邮箱、地址等长度变化的数据
TINYTEXT 255字符 变长 简短描述、备注
TEXT 65535字符 变长 文章内容、详细描述
MEDIUMTEXT 16MB 变长 长文章、日志
LONGTEXT 4GB 变长 大型文档、二进制数据
-- 字符串类型示例
username VARCHAR(50),           -- 用户名
email VARCHAR(100),             -- 邮箱
phone CHAR(11),                 -- 手机号(定长)
description TEXT,               -- 描述
content LONGTEXT,               -- 文章内容
status TINYTEXT                 -- 状态信息
CHAR vs VARCHAR:
字符串类型选择原则:

日期时间类型

MySQL提供了多种日期时间类型,用于存储不同精度的日期和时间数据。选择合适的日期时间类型对于数据准确性和查询性能非常重要。

MySQL日期时间类型对比图
类型 格式 范围 大小 用途
DATE YYYY-MM-DD 1000-01-01 到 9999-12-31 3字节 生日、订单日期、事件日期
TIME HH:MM:SS -838:59:59 到 838:59:59 3字节 登录时间、会议时长、运行时间
DATETIME YYYY-MM-DD HH:MM:SS 1000-01-01 到 9999-12-31 8字节 创建时间、更新时间、事件时间
TIMESTAMP YYYY-MM-DD HH:MM:SS 1970-01-01 到 2038-01-19 4字节 自动记录时间戳、版本控制
YEAR YYYY 1901 到 2155 1字节 年份、毕业年份、生产年份
-- 日期时间类型示例
birthday DATE,                  -- 生日
login_time TIME,                -- 登录时间
created_at DATETIME,            -- 创建时间
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, -- 自动更新时间戳
graduation_year YEAR            -- 毕业年份
DATETIME vs TIMESTAMP:
日期时间类型选择原则:
练习题:
  1. 为用户表选择合适的数据类型:用户ID、用户名、年龄、余额、注册时间
  2. 为商品表选择合适的数据类型:商品ID、商品名、价格、库存、描述
  3. 说明 CHAR(10) 和 VARCHAR(10) 的区别