首页 > 编程笔记 > MySQL笔记 阅读:11

MySQL中的整数类型(附带实例)

整数类型主要用来存储整数,MySQL 提供了多种整数数据类型,不同的类型提供不同的取值范围,可以存储的值的范围越大,其所需要的存储空间也会越大。

MySQL 主要提供的整数类型有 TINYINT、SMALLINT、MEDIUMINT、INT(INTEGER)、BIGINT,如下表所示。

表 1 MySQL中的整数类型
类型名称 说明 存储需求
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)。

其他整数类型的取值范围计算方法相同,如下表所示:

表 2 不同整数类型的取值范围
数据类型 有符号 无符号
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    |       |
+-------+-----------+------+-----+---------+-------+
不同的整数类型有不同的取值范围,并且需要不同的存储空间,因此应该根据实际需要选择合适的数据类型,这样有利于提高查询的效率和节省存储空间。

相关文章