MySQL 数据库数据类型

引言

在开发和维护数据库应用程序时,了解数据类型是非常重要的。数据类型不仅决定了数据库表中每一列可以存储的数据类型,还影响了存储空间的使用和查询效率。MySQL 数据库提供了多种数据类型,本文将介绍其中常用的数据类型,并给出相应的代码示例。

数据类型分类

MySQL 数据库中的数据类型可以分为以下几类:

  1. 数值类型
  2. 字符串类型
  3. 日期和时间类型
  4. 二进制类型
  5. JSON 类型

下面将分别介绍每一类数据类型。

数值类型

数值类型用于存储数值数据。常用的数值类型有:

  • TINYINT:一个字节大小的整数类型,取值范围为 -128 到 127。
  • SMALLINT:两个字节大小的整数类型,取值范围为 -32768 到 32767。
  • INT:四个字节大小的整数类型,取值范围为 -2147483648 到 2147483647。
  • BIGINT:八个字节大小的整数类型,取值范围为 -9223372036854775808 到 9223372036854775807。
  • FLOAT:单精度浮点数类型。
  • DOUBLE:双精度浮点数类型。
  • DECIMAL:高精度浮点数类型,可以指定精度和小数位数。

以下是一个创建数值类型表的示例:

CREATE TABLE mytable (
  id INT,
  age TINYINT,
  salary DECIMAL(8, 2)
);

字符串类型

字符串类型用于存储文本数据。常用的字符串类型有:

  • CHAR:固定长度的字符串类型,最多可以存储 255 个字符。
  • VARCHAR:可变长度的字符串类型,最多可以存储 65535 个字符。
  • TEXT:可变长度的大文本类型,最多可以存储 65535 个字符。
  • ENUM:枚举类型,可以从预定义的值中选择一个。
  • SET:集合类型,可以从预定义的值中选择多个。

以下是一个创建字符串类型表的示例:

CREATE TABLE mytable (
  id INT,
  name VARCHAR(50),
  description TEXT
);

日期和时间类型

日期和时间类型用于存储日期和时间数据。常用的日期和时间类型有:

  • DATE:日期类型,格式为 YYYY-MM-DD。
  • TIME:时间类型,格式为 HH:MM:SS。
  • DATETIME:日期和时间类型,格式为 YYYY-MM-DD HH:MM:SS。
  • TIMESTAMP:时间戳类型,存储从 1970 年 1 月 1 日到当前时间的秒数。
  • YEAR:年份类型,存储 2 个或 4 个数字的年份。

以下是一个创建日期和时间类型表的示例:

CREATE TABLE mytable (
  id INT,
  birthdate DATE,
  logintime TIME,
  created_at DATETIME,
  updated_at TIMESTAMP,
  expire_year YEAR(4)
);

二进制类型

二进制类型用于存储二进制数据。常用的二进制类型有:

  • BINARY:固定长度的二进制类型,最多可以存储 255 个字节。
  • VARBINARY:可变长度的二进制类型,最多可以存储 65535 个字节。
  • BLOB:可变长度的二进制大对象类型,最多可以存储 65535 个字节。
  • BIT:位字段类型,可以存储位串。

以下是一个创建二进制类型表的示例:

CREATE TABLE mytable (
  id INT,
  avatar BLOB,
  permissions BIT(8)
);

JSON 类型

MySQL 5.7 及以上版本支持 JSON 类型,可以存储和查询 JSON 数据。JSON 类型的字段可以存储 JSON 对象或数组。

以下是一个创建 JSON 类型表的示例:

CREATE TABLE mytable (
  id INT,
  data JSON
);

总结

本文介绍了 MySQL 数据库中常用的数据类型,并给出了相应