Skip to content

数据类型

数字类型

整数类型

类型大小(byte)有符号范围无符号范围描述
TINYINT1-128 ~ 1270 ~ 255极小整数
SMALLINT2-32,768 ~ 32,7670 ~ 65,535小整数
MEDIUMINT3-8,388,608 ~ 8,388,6070 ~ 16,777,215中等整数
INT / INTEGER4-2,147,483,648 ~ 2,147,483,6470 ~ 4,294,967,295标准整数
BIGINT8-2⁶³ ~ 2⁶³ - 10 ~ 2⁶⁴ - 1大整数

浮点数类型

类型大小(byte)有符号范围无符号范围描述
FLOAT4-3.402823466E+38 ~ -1.175494351E-38, 0, 1.175494351E-38 ~ 3.402823466E+380, 1.175494351E-38 ~ 3.402823466E+38单精度浮点数
DOUBLE8-1.7976931348623157E+308 ~ -2.2250738585072014E-308, 0, 2.2250738585072014E-308 ~ 1.7976931348623157E+3080, 2.2250738585072014E-308 ~ 1.7976931348623157E+308双精度浮点数

注意: FLOAT 和 DOUBLE 的无符号范围仅将负值部分截掉,并不会将范围翻倍(与整数类型不同)。

定点数类型

类型大小(byte)有符号范围无符号范围描述
DECIMAL(M, D)取决于 M 和 D(见备注)取决于 M 和 D,最大与 DOUBLE 相同取决于 M 和 D,最大与 DOUBLE 相同精确定点数,用于需要高精度的场景(如金额)

DECIMAL 存储空间计算:

DECIMAL 将每 9 位十进制数打包为 4 个字节,剩余位数按以下规则:

  • 1~2 位剩余数字 → 1 字节
  • 3~4 位剩余数字 → 2 字节
  • 5~6 位剩余数字 → 3 字节
  • 7~9 位剩余数字 → 4 字节

例如 DECIMAL(18, 9):整数部分 9 位(4 字节),小数部分 9 位(4 字节),共 8 字节。