MySQL中的整数类型(附带实例)
整数类型主要用来存储整数,MySQL 提供了多种整数数据类型,不同的类型提供不同的取值范围,可以存储的值的范围越大,其所需要的存储空间也会越大。
MySQL 主要提供的整数类型有 TINYINT、SMALLINT、MEDIUMINT、INT(INTEGER)、BIGINT,如下表所示。
整数类型的属性字段可以添加 AUTO_INCREMENT 自增约束条件。
从表 1 中可以看到,不同整数类型存储所需的字节数是不同的,占用字节数最小的是 TINYINT 类型,占用字节最大的是 BIGINT 类型,占用字节越多的类型所能表示的数值范围越大。
根据占用字节数,可以求出每一种数据类型的取值范围。例如,TINYINT 需要 1 字节(8 bits)来存储,那么 TINYINT 无符号数的最大值为 28−1(255)、TINYINT 有符号数的最大值为 27−1(127)。
其他整数类型的取值范围计算方法相同,如下表所示:
【实例】创建表 tmp1,其中字段 x、y、z、m、n 的数据类型依次为 TINYINT、SMALLINT、MEDIUMINT、INT、BIGINT,SQL 语句如下:
MySQL 主要提供的整数类型有 TINYINT、SMALLINT、MEDIUMINT、INT(INTEGER)、BIGINT,如下表所示。
类型名称 | 说明 | 存储需求 |
---|---|---|
TINYINT | 很小的整数 | 1 字节 |
SMALLINT | 小的整数 | 2 字节 |
MEDIUMINT | 中等大小的整数 | 3 字节 |
INT (INTEGER) | 普通大小的整数 | 4 字节 |
BIGINT | 大整数 | 8 字节 |
整数类型的属性字段可以添加 AUTO_INCREMENT 自增约束条件。
从表 1 中可以看到,不同整数类型存储所需的字节数是不同的,占用字节数最小的是 TINYINT 类型,占用字节最大的是 BIGINT 类型,占用字节越多的类型所能表示的数值范围越大。
根据占用字节数,可以求出每一种数据类型的取值范围。例如,TINYINT 需要 1 字节(8 bits)来存储,那么 TINYINT 无符号数的最大值为 28−1(255)、TINYINT 有符号数的最大值为 27−1(127)。
其他整数类型的取值范围计算方法相同,如下表所示:
数据类型 | 有符号 | 无符号 |
---|---|---|
TINYINT | -128~127 | 0~255 |
SMALLINT | -32768~32767 | 0~65535 |
MEDIUMINT | -8388608~8388607 | 0~16777215 |
INT (INTEGER) | -2147483648~2147483647 | 0~4294967295 |
BIGINT | -9223372036854775808~9223372036854775807 | 0~18446744073709551615 |
【实例】创建表 tmp1,其中字段 x、y、z、m、n 的数据类型依次为 TINYINT、SMALLINT、MEDIUMINT、INT、BIGINT,SQL 语句如下:
CREATE TABLE tmp1 ( x TINYINT, y SMALLINT, z MEDIUMINT, m INT, n BIGINT );语句执行成功之后,使用 DESC 查看表结构,结果如下:
mysql> DESC tmp1; +-------+-----------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+-----------+------+-----+---------+-------+ | x | tinyint | YES | | NULL | | | y | smallint | YES | | NULL | | | z | mediumint | YES | | NULL | | | m | int | YES | | NULL | | | n | bigint | YES | | NULL | | +-------+-----------+------+-----+---------+-------+不同的整数类型有不同的取值范围,并且需要不同的存储空间,因此应该根据实际需要选择合适的数据类型,这样有利于提高查询的效率和节省存储空间。