mysql 字段类型说明

mysql 字段类型说明

MySQL 字段类型说明

MySQL 支持多种数据类型,每种数据类型都有其特定的用途和存储需求。以下是对 MySQL 中常见字段类型的详细说明:

一、数值类型(Numeric Types)

  1. 整数类型(Integer Types)

    • TINYINT:非常小的整数,范围从 -128 到 127 或从 0 到 255(无符号)。
    • SMALLINT:小的整数,范围从 -32,768 到 32,767 或从 0 到 65,535(无符号)。
    • MEDIUMINT:中等大小的整数,范围从 -8,388,608 到 8,388,607 或从 0 到 16,777,215(无符号)。
    • INT 或 INTEGER:标准整数,范围从 -2,147,483,648 到 2,147,483,647 或从 0 到 4,294,967,295(无符号)。
    • BIGINT:大的整数,范围从 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 或从 0 到 18,446,744,073,709,551,615(无符号)。
  2. 浮点数类型(Floating-Point Types)

    • FLOAT(p):单精度浮点数,非精确值,适合存储需要较大范围的浮点数值。p 表示总位数(精度),但并非所有位都是精确的。
    • DOUBLE 或 DOUBLE PRECISION(p):双精度浮点数,比 FLOAT 更精确,适用于需要更高精度的科学计算。
    • DECIMAL(M, D) 或 NUMERIC(M, D):定点数,用于存储精确的小数点数值。M 是数字的最大位数(精度),D 是小数点后的位数(标度)。

二、日期和时间类型(Date and Time Types)

  1. DATE:日期值,格式为 'YYYY-MM-DD'。
  2. TIME:时间值,格式为 'HH:MM:SS'。
  3. DATETIME:日期和时间值,格式为 'YYYY-MM-DD HH:MM:SS'。
  4. TIMESTAMP:时间戳,与 UNIX 时间戳兼容,自动记录创建或修改的时间。格式类似于 DATETIME,但可以自动更新。
  5. YEAR:年份值,格式为 YYYY。

三、字符串类型(String Types)

  1. 字符类型(Character Types)

    • CHAR(n):固定长度的字符串,最多可存储 n 个字符。如果存储的字符串长度小于 n,则会在右侧填充空格。
    • VARCHAR(n):可变长度的字符串,最多可存储 n 个字符。实际存储空间为字符串的长度加 1 或 2 个字节(用于存储长度信息)。
  2. 文本类型(Text Types)

    • TINYTEXT:非常小的文本字符串,最大长度为 255 个字符。
    • TEXT:小文本字符串,最大长度为 65,535 个字符(约 64 KB)。
    • MEDIUMTEXT:中等大小的文本字符串,最大长度为 16,777,215 个字符(约 16 MB)。
    • LONGTEXT:大文本字符串,最大长度为 4,294,967,295 个字符(约 4 GB)。
  3. 二进制数据类型(Binary Data Types)

    • BINARY(n):类似 CHAR,但存储的是二进制数据。
    • VARBINARY(n):类似 VARCHAR,但存储的是二进制数据。
    • TINYBLOB:非常小的 BLOB,最大长度为 255 个字节。
    • BLOB:小 BLOB,最大长度为 65,535 个字节(约 64 KB)。
    • MEDIUMBLOB:中等大小的 BLOB,最大长度为 16,777,215 个字节(约 16 MB)。
    • LONGBLOB:大 BLOB,最大长度为 4,294,967,295 个字节(约 4 GB)。