MySQL 支持多种数据类型,主要分为以下几类:

1. 数值类型

  • INT: 整数类型,范围从 -2147483648 到 2147483647。

    • 示例:age INT

  • TINYINT: 小整数类型,范围从 -128 到 127。

    • 示例:is_active TINYINT

  • BIGINT: 大整数类型,范围从 -9223372036854775808 到 9223372036854775807。

    • 示例:user_id BIGINT

  • FLOAT: 单精度浮点数。

    • 示例:price FLOAT

  • DOUBLE: 双精度浮点数。

    • 示例:salary DOUBLE

  • DECIMAL: 精确小数类型,常用于存储货币值。

    • 示例:total DECIMAL(10, 2)

2. 日期和时间类型

  • DATE: 日期,格式为 'YYYY-MM-DD'。

    • 示例:birth_date DATE

  • DATETIME: 日期和时间,格式为 'YYYY-MM-DD HH:MM:SS'。

    • 示例:created_at DATETIME

  • TIMESTAMP: 时间戳,范围从 '1970-01-01 00:00:01' UTC 到 '2038-01-19 03:14:07' UTC。

    • 示例:updated_at TIMESTAMP

  • TIME: 时间,格式为 'HH:MM:SS'。

    • 示例:start_time TIME

  • YEAR: 年份,格式为 'YYYY'。

    • 示例:graduation_year YEAR

3. 字符串类型

  • CHAR: 定长字符串,最多 255 个字符。

    • 示例:country_code CHAR(2)

  • VARCHAR: 变长字符串,最多 65535 个字符。

    • 示例:username VARCHAR(50)

  • TEXT: 长文本数据,最多 65535 个字符。

    • 示例:description TEXT

  • BLOB: 二进制大对象,用于存储二进制数据。

    • 示例:image BLOB

  • ENUM: 枚举类型,允许从预定义的值中选择一个。

    • 示例:status ENUM('active', 'inactive')

  • SET: 集合类型,允许从预定义的值中选择多个。

    • 示例:permissions SET('read', 'write', 'execute')

4. 其他类型

  • BOOLEAN: 布尔类型,实际上是 TINYINT(1) 的别名。

    • 示例:is_verified BOOLEAN

  • JSON: 用于存储 JSON 格式的数据。

    • 示例:metadata JSON

示例表

CREATE TABLE users (
    user_id BIGINT AUTO_INCREMENT PRIMARY KEY,
    username VARCHAR(50) NOT NULL,
    password VARCHAR(255) NOT NULL,
    email VARCHAR(100) UNIQUE,
    age INT,
    is_active TINYINT DEFAULT 1,
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    description TEXT,
    status ENUM('active', 'inactive') DEFAULT 'active'
);

本篇文章内容来源于:MySQL 数据类型详细说明以及案例