MySQL数据类型
概览
MySQL中的数据类型可以分为几大类,每一类都包含了不同的数据类型,适用于不同的数据存储和处理场景。以下是需要学习的主要数据类型:
-
数值类型:
- 整数类型:如
TINYINT
,SMALLINT
,MEDIUMINT
,INT
,BIGINT
。这些类型用于存储整数,可选有无符号。 - 浮点和定点类型:如
FLOAT
,DOUBLE
,DECIMAL
。这些类型用于存储小数,其中DECIMAL
用于存储精确的小数。
- 整数类型:如
-
日期和时间类型:
DATE
: 仅存储日期。TIME
: 仅存储时间。DATETIME
: 存储日期和时间。TIMESTAMP
: 存储日期和时间,并且自动更新到当前时间。YEAR
: 存储年份。
-
字符串类型:
- 字符串类型:如
CHAR
和VARCHAR
。CHAR
是固定长度,而VARCHAR
是可变长度。 - 文本类型:如
TEXT
,BLOB
,MEDIUMTEXT
,LONGTEXT
。这些类型用于存储大量的文本或二进制数据。 - 枚举(ENUM)和集合(SET)类型:用于存储预定义的值。
- 字符串类型:如
-
空间数据类型:
- 用于存储空间数据,如地理数据,包括
GEOMETRY
,POINT
,LINESTRING
,POLYGON
等。
- 用于存储空间数据,如地理数据,包括
-
JSON类型:
数值类型
整数类型(精确值)-INTEGER、INT、SMALLINT、TINYINT、MEDIUMINT、BIGINT
下表显示了每种整数类型所需的存储和范围。
类型 | 存储 (字节) | 有符号最小值 | 无符号最小值 | 有符号最大值 | 无符号最大值 |
---|---|---|---|---|---|
TINYINT | 1 | -128 | 0 | 127 | 255 |
SMALLINT | 2 | -32768 | 0 | 32767 | 65535 |
MEDIUMINT | 3 | -8388608 | 0 | 8388607 | 16777215 |
INT | 4 | -2147483648 | 0 | 2147483647 | 4294967295 |
BIGINT | 8 | -128 | 0 | 127 | 255 |
TINYINT | 1 | -2的63次方 | 0 | 2的63次方-1 | 2的64次方 |
-2的63次方 = −9223372036854775808
2的63次方-1 = 9223372036854775807
2的64次方 = 18446744073709551616
MySQL数字类型超出范围时的溢出处理
详情见文章:MySQL数字类型超出范围时的溢出处理
字符串类型
字符串类型有 CHAR
, VARCHAR
, BINARY
, VARBINARY
, BLOB
, TEXT
, ENUM
, and SET
.
SET 类型
链接待补充
ENUM 类型
链接待补充
JSON类型
链接待补充
参考链接
官网文档
https://dev.mysql.com/doc/refman/8.0/en/data-types.html