数据库表包含具有特定数据类型(如数字或字符串)的多个列。MySQL提供了更多的数据类型,而不仅仅是数字或字符串。
MySQL中的每一种数据类型都可以通过以下特征来确定:
- 它所代表的价值类型。
- 占用的空间以及值是固定长度还是可变长度。
- 数据类型的值可以索引或不索引。
- MySQL如何比较特定数据类型的值。
分类 | 类型名称 | 说明 |
---|---|---|
整数类型 | tinyInt | 很小的整数 |
smallint | 小的整数 | |
mediumint | 中等大小的整数 | |
int(integer) | 普通大小的整数 | |
小数类型 | float | 单精度浮点数 |
double | 双精度浮点数 | |
decimal(m,d) | 压缩严格的定点数 | |
日期类型 | year YYY | 1901~2155 |
time HH:MM:SS | -838:59:59~838:59:59 | |
date YYYY-MM-DD | 1000-01-01~9999-12-3 | |
datetime YYYY-MM-DD HH:MM:SS | 1000-01-01 00:00:00~ 9999-12-31 23:59:59 | |
timestamp YYYY-MM-DD HH:MM:SS | 19700101 00:00:01 UTC~2038-01-19 03:14:07UTC | |
字符串 | CHAR(M) M | 为 0~255 之间的整数 |
VARCHAR(M) M | 为 0~65535 之间的整数 | |
BLOB TINYBLOB | 允许长度 0~255 字节 | |
BLOB | 允许长度 0~65535 字节 | |
MEDIUMBLOB | 允许长度 0~167772150 字节 | |
LONGBLOB | 允许长度 0~4294967295 字节 | |
CLOB | TINYTEXT | 允许长度 0~255 字节 |
TEXT | 允许长度 0~65535 字节 | |
MEDIUMTEXT | 允许长度 0~167772150 字节 | |
LONGTEXT | 允许长度 0~4294967295 字节 | |
二进制 | VARBINARY(M) | 允许长度 0~M 个字节的变长字节 |
| BINARY(M) |
一、MySQL数字数据类型
在MySQL中,可以找到所有SQL标准数字类型,包括精确数字数据类型和近似数字数据类型,包括整数、定点和浮点数。此外,MySQL还拥有BIT用于存储位值的数据类型。数字类型可以有符号或无符号,但BIT类型。
下表显示MySQL中数字类型的摘要:
数值类型 | 描述 | |
---|---|---|
TINYINT | 非常小的整数 | |
SMALLINT | 小整数 | |
MEDIUMINT | 中型整数 | |
INT | 标准整数 | |
BIGINT | 大整数 | |
DECIMAL | 定点数 | |
FLOAT | 单精度浮点数 | |
DOUBLE | 双精度浮点数 | |
BIT | 位域 | days BIT(7) |
二、MySQL布尔数据类型
MySQL没有内置的BOOLEAN或BOOL数据类型。为了表示布尔值,MySQL使用最小的整数类型,即TINYINT(1)…换句话说,BOOLEAN和BOOL的同义词TINYINT(1).
三、MySQL字符串数据类型
在MySQL中,字符串可以保存从纯文本到二进制数据(如图像或文件)的任何内容。方法可以根据模式匹配比较和搜索字符串。LIKE接线员,正则表达式,和全文搜索.
下表显示MySQL中的字符串数据类型:
字符串类型 | 描述 |
---|---|
CHAR | 一个固定长度的非二进制(字符)字符串。 |
VARCHAR | 可变长度的非二进制字符串 |
BINARY | 固定长度的二进制字符串 |
VARBINARY | 可变长度二进制字符串 |
TINYBLOB | 一个很小的水珠(二进制大物体) |
BLOB | 一个小水珠 |
MEDIUMBLOB | 中等大小的水珠 |
LONGBLOB | 大水珠 |
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 | 年价值CCYY或YY 格式 |
五、MySQL空间数据类型
MySQL支持包含各种几何值和地理值的许多空间数据类型,如下表所示:
空间数据类型 | 描述 |
---|---|
GEOMETRY | 任何类型的空间值 |
POINT | 点(一对X-Y坐标) |
LINESTRING | 一条曲线(一条或多条)POINT 价值) |
POLYGON | 多边形 |
GEOMETRYCOLLECTION | 收藏GEOMETRY价值 |
MULTILINESTRING | 收藏LINESTRING价值 |
MULTIPOINT | 收藏POINT价值 |
MULTIPOLYGON | 收藏POLYGON价值 |
六、JSON数据类型
MySQL支持本机JSON自5.7.8版本以来的数据类型,允许您更有效地存储和管理JSON文档。本机JSON数据类型提供了JSON文档的自动验证和最佳存储格式。