跳转至
用户认证 - eMac Tech Docs

用户认证

重要提醒

为了您的权益以及学习体验,请不要外借账号!

如果您没有账号或忘记密码,请联系管理员重置密码。

请输入您的登录信息

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值处理

总结

  1. 数据类型选择

    • 根据业务需求
    • 考虑性能影响
    • 注意存储空间
    • 保证数据完整性
  2. 使用建议

    • 优先使用简单类型
    • 避免过度设计
    • 注意兼容性
    • 定期优化
  3. 运维管理

    • 监控存储空间
    • 性能分析
    • 数据迁移
    • 版本升级