MySQL数据类型
数据类型概述
1. 什么是数据类型
graph TD
    subgraph 数据类型
        num[数值类型]
        str[字符串类型]
        date[日期时间类型]
        json[JSON类型]
    end
    num ---|整数、浮点数| num_note[数值说明]
    str ---|文本、二进制| str_note[字符串说明]
    date ---|日期、时间| date_note[日期说明]
    json ---|结构化数据| json_note[JSON说明]
数据类型定义了列中可以存储的数据种类,以及如何存储这些数据。
2. 数据类型的重要性
- 影响存储空间
 
- 影响查询性能
 
- 影响数据完整性
 
- 影响应用开发
 
数值类型
1. 整数类型
| 类型 | 
字节 | 
范围 | 
说明 | 
| TINYINT | 
1 | 
-128~127 | 
小整数 | 
| SMALLINT | 
2 | 
-32768~32767 | 
中等整数 | 
| INT | 
4 | 
-2^31~2^31-1 | 
常用整数 | 
| BIGINT | 
8 | 
-2^63~2^63-1 | 
大整数 | 
2. 浮点类型
| 类型 | 
字节 | 
精度 | 
说明 | 
| FLOAT | 
4 | 
7位 | 
单精度浮点数 | 
| DOUBLE | 
8 | 
15位 | 
双精度浮点数 | 
| DECIMAL | 
变长 | 
精确 | 
定点数 | 
3. 数值类型示例
-- 创建表使用不同数值类型
CREATE TABLE numbers (
    id INT PRIMARY KEY,
    age TINYINT UNSIGNED,
    price DECIMAL(10,2),
    score FLOAT
);
-- 插入数据
INSERT INTO numbers VALUES (1, 25, 99.99, 85.5);
 
字符串类型
1. 字符类型
| 类型 | 
最大长度 | 
说明 | 
| CHAR | 
255 | 
固定长度 | 
| VARCHAR | 
65535 | 
可变长度 | 
| TEXT | 
65535 | 
长文本 | 
| LONGTEXT | 
4GB | 
超长文本 | 
2. 二进制类型
| 类型 | 
最大长度 | 
说明 | 
| BINARY | 
255 | 
固定长度 | 
| VARBINARY | 
65535 | 
可变长度 | 
| BLOB | 
65535 | 
二进制数据 | 
| LONGBLOB | 
4GB | 
大二进制数据 | 
3. 字符串类型示例
-- 创建表使用不同字符串类型
CREATE TABLE users (
    id INT PRIMARY KEY,
    name VARCHAR(50),
    email CHAR(100),
    bio TEXT,
    avatar BLOB
);
-- 插入数据
INSERT INTO users VALUES (1, 'John', 'john@example.com', 'Hello World', NULL);
 
日期时间类型
1. 日期类型
| 类型 | 
格式 | 
范围 | 
说明 | 
| DATE | 
YYYY-MM-DD | 
1000-01-01~9999-12-31 | 
日期 | 
| TIME | 
HH:MM:SS | 
-838:59:59~838:59:59 | 
时间 | 
| DATETIME | 
YYYY-MM-DD HH:MM:SS | 
1000-01-01 00:00:00~9999-12-31 23:59:59 | 
日期时间 | 
| TIMESTAMP | 
YYYY-MM-DD HH:MM:SS | 
1970-01-01 00:00:01~2038-01-19 03:14:07 | 
时间戳 | 
2. 日期时间示例
-- 创建表使用日期时间类型
CREATE TABLE events (
    id INT PRIMARY KEY,
    event_date DATE,
    event_time TIME,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
-- 插入数据
INSERT INTO events (id, event_date, event_time) 
VALUES (1, '2023-01-01', '12:00:00');
 
JSON类型
1. JSON类型特点
- 支持JSON文档存储
 
- 支持JSON路径查询
 
- 支持JSON函数操作
 
- 支持JSON索引
 
2. JSON类型示例
-- 创建表使用JSON类型
CREATE TABLE products (
    id INT PRIMARY KEY,
    name VARCHAR(100),
    attributes JSON
);
-- 插入JSON数据
INSERT INTO products VALUES (1, 'Laptop', '{"color": "black", "size": "15.6"}');
-- 查询JSON数据
SELECT name, attributes->'$.color' as color 
FROM products;
 
数据类型最佳实践
1. 选择原则
- 选择最小满足需求的数据类型
 
- 考虑存储空间和性能
 
- 考虑数据完整性
 
- 考虑应用需求
 
2. 性能优化
- 使用合适的整数类型
 
- 避免过长的VARCHAR
 
- 合理使用TEXT类型
 
- 注意日期时间类型的选择
 
3. 注意事项
- 字符集和排序规则
 
- 数值精度和范围
 
- 日期时间格式
 
- NULL值处理
 
总结
- 
数据类型选择
- 根据业务需求
 
- 考虑性能影响
 
- 注意存储空间
 
- 保证数据完整性
 
 
- 
使用建议
- 优先使用简单类型
 
- 避免过度设计
 
- 注意兼容性
 
- 定期优化
 
 
- 
运维管理