MySQL 字段数据类型

引言

在数据库中,字段是数据的最基本元素,用于定义数据表中的列。MySQL 是一个关系型数据库管理系统,提供了不同的数据类型,用于存储不同类型的数据。正确选择和使用字段数据类型对于数据库的性能和数据完整性至关重要。

本文将介绍 MySQL 中常见的字段数据类型,包括数字类型、日期和时间类型、字符串类型和其他类型,并为每种类型提供相应的代码示例。

数字类型

数字类型用于存储数字数据,包括整数和小数。MySQL 提供了多种数字类型,如下所示:

  • TINYINT:用于存储范围在 -128 到 127 之间的整数。
  • SMALLINT:用于存储范围在 -32768 到 32767 之间的整数。
  • MEDIUMINT:用于存储范围在 -8388608 到 8388607 之间的整数。
  • INT:常用的整数类型,用于存储范围在 -2147483648 到 2147483647 之间的整数。
  • BIGINT:用于存储范围在 -9223372036854775808 到 9223372036854775807 之间的整数。
  • FLOAT:用于存储单精度浮点数,可以存储大约 7 位小数。
  • DOUBLE:用于存储双精度浮点数,可以存储大约 15 位小数。
  • DECIMAL:用于存储精确的小数,可以指定总共的位数和小数位数。

下面是一个示例,展示如何在创建数据表时使用数字类型:

CREATE TABLE my_table (
    id INT PRIMARY KEY,
    quantity TINYINT,
    price DECIMAL(10, 2)
);

日期和时间类型

日期和时间类型用于存储日期和时间数据。MySQL 提供了多种日期和时间类型,如下所示:

  • DATE:用于存储日期,格式为 'YYYY-MM-DD'。
  • TIME:用于存储时间,格式为 'HH:MM:SS'。
  • DATETIME:用于存储日期和时间,格式为 'YYYY-MM-DD HH:MM:SS'。
  • TIMESTAMP:用于存储时间戳,保存日期和时间,格式为 'YYYY-MM-DD HH:MM:SS',并且自动更新。
  • YEAR:用于存储年份,格式为 'YYYY'。

下面是一个示例,展示如何在创建数据表时使用日期和时间类型:

CREATE TABLE my_table (
    id INT PRIMARY KEY,
    start_date DATE,
    start_time TIME,
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
    updated_at TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);

字符串类型

字符串类型用于存储文本数据。MySQL 提供了多种字符串类型,如下所示:

  • CHAR:用于存储固定长度的字符串,最多可存储 255 个字符。
  • VARCHAR:用于存储可变长度的字符串,最多可存储 65535 个字符。
  • TEXT:用于存储大文本数据,最多可存储 65535 个字符。
  • BLOB:用于存储二进制大对象,最多可存储 65535 个字节。
  • ENUM:用于存储枚举值,可以选择一个预定义的值列表。
  • SET:用于存储一个或多个预定义的值。

下面是一个示例,展示如何在创建数据表时使用字符串类型:

CREATE TABLE my_table (
    id INT PRIMARY KEY,
    name VARCHAR(255),
    description TEXT,
    image BLOB,
    status ENUM('active', 'inactive', 'deleted'),
    tags SET('red', 'green', 'blue')
);

其他类型

除了数字类型、日期和时间类型以及字符串类型之外,MySQL 还提供了其他一些特殊的数据类型,如下所示:

  • BOOLEAN:用于存储布尔值,可以存储 TRUEFALSE
  • JSON:用于存储 JSON 格式的数据。
  • GEOMETRY:用于存储空间数据