MySQL 的 `INT` 类型有哪些不同的长度?

推荐答案

在 MySQL 中,INT 类型有以下几种不同的长度:

  • TINYINT:1 字节,范围为 -128 到 127(有符号)或 0 到 255(无符号)。
  • SMALLINT:2 字节,范围为 -32768 到 32767(有符号)或 0 到 65535(无符号)。
  • MEDIUMINT:3 字节,范围为 -8388608 到 8388607(有符号)或 0 到 16777215(无符号)。
  • INTINTEGER:4 字节,范围为 -2147483648 到 2147483647(有符号)或 0 到 4294967295(无符号)。
  • BIGINT:8 字节,范围为 -9223372036854775808 到 9223372036854775807(有符号)或 0 到 18446744073709551615(无符号)。

本题详细解读

INT 类型的长度和范围

INT 类型是 MySQL 中最常用的整数类型之一。不同的 INT 类型在存储空间和数值范围上有所不同,具体如下:

  • TINYINT:占用 1 字节,适用于存储非常小的整数。有符号时,范围为 -128 到 127;无符号时,范围为 0 到 255。

  • SMALLINT:占用 2 字节,适用于存储较小的整数。有符号时,范围为 -32768 到 32767;无符号时,范围为 0 到 65535。

  • MEDIUMINT:占用 3 字节,适用于存储中等大小的整数。有符号时,范围为 -8388608 到 8388607;无符号时,范围为 0 到 16777215。

  • INTINTEGER:占用 4 字节,是 MySQL 中最常用的整数类型。有符号时,范围为 -2147483648 到 2147483647;无符号时,范围为 0 到 4294967295。

  • BIGINT:占用 8 字节,适用于存储非常大的整数。有符号时,范围为 -9223372036854775808 到 9223372036854775807;无符号时,范围为 0 到 18446744073709551615。

选择适当的 INT 类型

在选择 INT 类型时,应根据实际需求选择合适的类型。如果存储的数值范围较小,可以选择 TINYINTSMALLINT,这样可以节省存储空间。如果存储的数值范围较大,则需要选择 INTBIGINT

无符号与有符号

INT 类型可以指定为无符号(UNSIGNED),这意味着该列只能存储非负整数。无符号类型的范围是有符号类型的两倍,但只能存储正数。

示例

在这个示例中,id 列使用 TINYINT UNSIGNED,表示它只能存储 0 到 255 之间的整数。age 列使用 SMALLINT,可以存储 -32768 到 32767 之间的整数。salary 列使用 INT,可以存储 -2147483648 到 2147483647 之间的整数。population 列使用 BIGINT,可以存储非常大的整数。

纠错
反馈

纠错反馈