简介:在本教程中,您将了解 MySQL数据类型 以及如何在MySQL中设计数据库时有效地使用它们。mysql
数据库表包含多个具备特定数据类型的列,如数字或字符串。MySQL提供的数据类型不单单是数字或字符串。MySQL中的每种数据类型均可以经过如下特征来肯定:正则表达式
- 它表明的那种价值。
- 占用的空间以及值是固定长度仍是可变长度。
- 能够索引或不索引数据类型的值。
- MySQL如何比较特定数据类型的值。
MySQL数字数据类型
在MySQL中,您能够找到全部SQL标准数字类型,包括精确数字数据类型和近似数字数据类型,包括整数,定点和浮点。此外,MySQL还具备BIT
用于存储位值的数据类型。除BIT
类型外,数字类型能够是有符号或无符号的。数据库
下表显示了MySQL中数字类型的摘要:express
数字类型 | 描述 |
---|---|
TINYINT |
一个很是小的整数 |
SMALLINT |
一个小整数 |
MEDIUMINT |
一个中等大小的整数 |
INT |
标准整数 |
BIGINT |
一个大整数 |
DECIMAL |
定点数 |
FLOAT |
单精度浮点数 |
DOUBLE |
双精度浮点数 |
BIT |
有点田野 |
MySQL布尔数据类型
MySQL没有内置 BOOLEAN
或BOOL
数据类型。为了表示布尔值,MySQL使用最小的整数类型TINYINT(1)
。换句话说,是 BOOLEAN
和BOOL
的同义词TINYINT(1).
json
MySQL String数据类型
在MySQL中,字符串能够包含从纯文本到二进制数据(如图像或文件)的任何内容。经过使用LIKE
运算符, 正则表达式和全文搜索,能够基于模式匹配来比较和搜索字符串。学习
下表显示了MySQL中的字符串数据类型:spa
字符串类型 | 描述 |
---|---|
CHAR |
固定长度的非二进制(字符)字符串 |
VARCHAR |
可变长度的非二进制字符串 |
BINARY |
固定长度的二进制字符串 |
VARBINARY |
可变长度的二进制字符串 |
TINYBLOB |
一个很是小的BLOB(二进制大对象) |
BLOB |
一个小BLOB |
MEDIUMBLOB |
一个中等大小的BLOB |
LONGBLOB |
一个大BLOB |
TINYTEXT |
一个很是小的非二进制字符串 |
TEXT |
一个小的非二进制字符串 |
MEDIUMTEXT |
中等大小的非二进制字符串 |
LONGTEXT |
一个很大的非二进制字符串 |
ENUM |
枚举; 能够为每一个列值分配一个枚举成员 |
SET |
一套; 能够为每一个列值分配零个或多个SET 成员 |
MySQL日期和时间数据类型
MySQL提供日期和时间类型以及日期和时间的组合。此外,MySQL支持 时间戳数据类型,用于跟踪表中一行的更改。若是您只想存储没有日期和月份的年份,则可使用YEAR
数据类型。设计
下表说明了MySQL日期和时间数据类型:code
日期和时间类型 | 描述 |
---|---|
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 |
一个点(一对XY坐标) |
LINESTRING |
曲线(一个或多个POINT 值) |
POLYGON |
一个多边形 |
GEOMETRYCOLLECTION |
一组GEOMETRY 价值观 |
MULTILINESTRING |
一组LINESTRING 价值观 |
MULTIPOINT |
一组POINT 价值观 |
MULTIPOLYGON |
一组POLYGON 价值观 |
JSON数据类型
JSON
自5.7.8版本以来,MySQL支持本机数据类型,容许您更有效地存储和管理JSON文档。本机JSON数据类型提供JSON文档和最佳存储格式的自动验证。
在本教程中,您学习了各类MySQL数据类型,这些类型可帮助您肯定在建立表时应将哪些数据类型用于列。