参考资料

  1. MySQL 删除数据表
  2. MySQL NULL 值处理详细说明以及案例
  3. MySQL ORDER BY(排序) 语句详细说明以及案例
  4. MySQL 导出数据详细说明以及案例
  5. MySQL UPDATE 更新详细说明以及案例
  6. MySQL 查询数据详细说明以及案例
  7. MySQL 运算符详细说明以及案例
  8. MySQL ALTER 命令详细说明以及案例

MySQL 数据类型详细说明以及案例

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'
);