整数类型

TiDB 支持 MySQL 所有的整数类型,包括 INTEGER/INTTINYINTSMALLINTMEDIUMINT 以及 BIGINT,完整信息参考这篇文档。

字段说明:

语法元素 说明
M 类型显示宽度,可选
UNSIGNED 无符号数,如果不加这个标识,则为有符号数
ZEROFILL 补零标识,如果有这个标识,TiDB 会自动给类型增加 UNSIGNED 标识,但是没有做补零的操作

类型定义

BIT 类型

比特值类型。M 表示比特位的长度,取值范围从1到64,其默认值是1。

{{< copyable “sql” >}}

  1. BIT[(M)]

BOOLEAN 类型

布尔类型,别名为 BOOL,和 TINYINT(1) 等价。零值被认为是 False,非零值认为是 True。在 TiDB 内部,True 存储为 1False 存储为 0

{{< copyable “sql” >}}

  1. BOOLEAN

TINYINT 类型

TINYINT 类型。有符号数的范围是 [-128, 127]。无符号数的范围是 [0, 255]

{{< copyable “sql” >}}

  1. TINYINT[(M)] [UNSIGNED] [ZEROFILL]

SMALLINT 类型

SMALLINT 类型。有符号数的范围是 [-32768, 32767]。无符号数的范围是 [0, 65535]

{{< copyable “sql” >}}

  1. SMALLINT[(M)] [UNSIGNED] [ZEROFILL]

MEDIUMINT 类型

MEDIUMINT 类型。有符号数的范围是 [-8388608, 8388607]。无符号数的范围是 [0, 16777215]

{{< copyable “sql” >}}

  1. MEDIUMINT[(M)] [UNSIGNED] [ZEROFILL]

INTEGER 类型

INTEGER 类型,别名 INT。有符号数的范围是 [-2147483648, 2147483647]。无符号数的范围是 [0, 4294967295]

{{< copyable “sql” >}}

  1. INT[(M)] [UNSIGNED] [ZEROFILL]

或者:

{{< copyable “sql” >}}

  1. INTEGER[(M)] [UNSIGNED] [ZEROFILL]

BIGINT 类型

BIGINT 类型。有符号数的范围是 [-9223372036854775808, 9223372036854775807]。无符号数的范围是 [0, 18446744073709551615]

{{< copyable “sql” >}}

  1. BIGINT[(M)] [UNSIGNED] [ZEROFILL]
  2. >

存储空间以及取值范围

每种类型对存储空间的需求以及最大/最小值如下表所示:

类型 存储空间 最小值(有符号/无符号) 最大值(有符号/无符号)
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 -9223372036854775808 / 0 9223372036854775807 / 18446744073709551615