MySQL Data Types

摘要在本教程中,您将了解MySQL 数据类型以及如何在 MySQL 中设计数据库时有效地使用它们。

数据库表包含具有特定数据类型(例如数字或字符串)的多个列。 MySQL 提供了除数字和字符串之外的更多数据类型。 MySQL中的每种数据类型都可以由以下特征决定:

  • 它所代表的价值观。
  • 占用的空间以及值是固定长度还是可变长度。
  • 数据类型的值可以被索引,也可以不被索引。
  • MySQL 如何比较特定数据类型的值。

MySQL Data Types

下载 MySQL 数据类型概述

MySQL 数字数据类型

在MySQL中,您可以找到所有SQL标准数字类型,包括精确数字数据类型和近似数字数据类型,包括整数、定点和浮点。另外,MySQL还有BIT数据类型用于存储位值。除BIT类型外,数字类型可以有符号或无符号。

下表显示了 MySQL 中数值类型的摘要:

数字类型描述
TINYINT一个很小的整数
SMALLINT一个小整数
MEDIUMINT一个中等大小的整数
INT标准整数
BIGINT一个大整数
DECIMAL定点数
FLOAT单精度浮点数
DOUBLE双精度浮点数
BIT一个位域

MySQL 布尔数据类型

MySQL 没有内置的BOOLEANBOOL数据类型。为了表示布尔值,MySQL 使用最小的整数类型TINYINT(1) 。换句话说, BOOLEANBOOLTINYINT(1).

MySQL 字符串数据类型

在 MySQL 中,字符串可以保存从纯文本到二进制数据(例如图像或文件)的任何内容。可以使用LIKE运算符、正则表达式全文搜索基于模式匹配来比较和搜索字符串。

下表显示了 MySQL 中的字符串数据类型:

字符串类型描述
CHAR固定长度的非二进制(字符)字符串
VARCHAR可变长度的非二进制字符串
BINARY固定长度的二进制字符串
VARBINARY可变长度的二进制字符串
TINYBLOB非常小的 BLOB(二进制大对象)
BLOB一个小斑点
MEDIUMBLOB中等大小的 BLOB
LONGBLOB一个大的BLOB
TINYTEXT一个非常小的非二进制字符串
TEXT一个小的非二进制字符串
MEDIUMTEXT中等大小的非二进制字符串
LONGTEXT一个大的非二进制字符串
ENUM枚举;每个列值可以分配一个枚举成员
SET一套;每个列值可以分配零个或多个SET成员

MySQL 日期和时间数据类型

MySQL 提供了日期和时间的类型以及日期和时间的组合。此外,MySQL支持时间戳数据类型来跟踪表中一行的变化。如果您只想存储没有日期和月份的年份,则可以使用YEAR数据类型。

下表说明了 MySQL 日期和时间数据类型:

日期和时间类型描述
DATE CCYY-MM-DD格式的日期值
TIME hh:mm:ss格式的时间值
DATETIME CCYY-MM-DD hh:mm:ss格式的日期和时间值
TIMESTAMP CCYY-MM-DD hh:mm:ss格式的时间戳值
YEAR CCYYYY格式的年份值

MySQL 空间数据类型

MySQL支持许多包含各种几何和地理值的空间数据类型,如下表所示:

空间数据类型描述
GEOMETRY任何类型的空间值
POINT一个点(一对XY坐标)
LINESTRING一条曲线(一个或多个POINT值)
POLYGON一个多边形
GEOMETRYCOLLECTION GEOMETRY值的集合
MULTILINESTRING LINESTRING值的集合
MULTIPOINT POINT值的集合
MULTIPOLYGON POLYGON值的集合

JSON 数据类型

MySQL 从 5.7.8 版本开始支持原生JSON数据类型,允许您更有效地存储和管理 JSON 文档。原生 JSON 数据类型提供 JSON 文档的自动验证和最佳存储格式。

在本教程中,您学习了各种 MySQL 数据类型,这些数据类型可帮助您确定在创建表时应为列使用哪种数据类型。

本教程有帮助吗?