# 第 11 章 数据类型

目录

11.1 数值数据类型

11.1.1 数值数据类型语法

11.1.2 整数类型(精确值) - INTEGER、INT、SMALLINT、TINYINT、MEDIUMINT、BIGINT

11.1.3 定点类型(精确值)——DECIMAL、NUMERIC

11.1.4 浮点类型(近似值)——FLOAT、DOUBLE

11.1.5 位值类型——BIT

11.1.6 数值类型属性

11.1.7 超出范围和溢出处理

11.2 日期和时间数据类型

11.2.1 日期和时间数据类型语法

11.2.2 DATE、DATETIME 和 TIMESTAMP 类型

11.2.3 TIME 类型

11.2.4 年份类型

11.2.5 TIMESTAMP 和 DATETIME 的自动初始化和更新

11.2.6 时间值中的小数秒

11.2.7 日期和时间类型之间的转换

11.2.8 2 位数年份日期

11.3 字符串数据类型

11.3.1 字符串数据类型语法

11.3.2 CHAR 和 VARCHAR 类型

11.3.3 BINARY 和 VARBINARY 类型

11.3.4 BLOB 和 TEXT 类型

11.3.5 ENUM 类型

11.3.6 SET 类型

11.4 空间数据类型

11.4.1 空间数据类型

11.4.2 OpenGIS 几何模型

11.4.3 支持的空间数据格式

11.4.4 几何良构性和有效性

11.4.5 空间参考系统支持

11.4.6 创建空间列

11.4.7 填充空间列

11.4.8 获取空间数据

11.4.9 优化空间分析

11.4.10 创建空间索引

11.4.11 使用空间索引

11.5 JSON 数据类型

11.6 数据类型默认值

11.7 数据类型存储要求

11.8 为列选择正确的类型

11.9 使用来自其他数据库引擎的数据类型

MySQL 支持SQL几种类型的数据类型:数字类型、日期和时间类型、字符串(字符和字节)类型、空间类型和JSON数据类型。本章提供了每个类别中类型属性的概述和更详细的描述,以及数据类型存储要求的摘要。最初的概述是故意简短的。有关特定数据类型的其他信息,例如可以指定值的允许格式,请参阅更详细的描述。

数据类型描述使用以下约定:

  • 对于整数类型,*表示最大显示宽度。对于浮点和定点类型,M是可存储的总位数(精度)。对于字符串类型,M是最大长度。最大允许值M*取决于数据类型。

  • *D适用于浮点和定点类型,并指示小数点(刻度)后的位数。最大可能值为30,但不应大于M*−2.

  • *fsp适用于时间,约会时间时间戳类型并表示小数秒精度;也就是说,小数点后的小数位数是秒的小数部分。这个fsp*值(如果给定)必须在0到6之间。值为0表示没有小数部分。如果省略,默认精度为0。(为了与以前的MySQL版本兼容,这与标准SQL默认值6不同。)

  • 方括号([])指明类型定义的可选部分。