MySQL 8.x从入门到精通(视频教学版)
上QQ阅读APP看书,第一时间看更新

3.1.1 整数类型

数值型数据类型主要用来存储数字,MySQL提供了多种数值数据类型,不同的数据类型提供不同的取值范围,可以存储的值范围越大,其所需要的存储空间也会越大。MySQL主要提供的整数类型有TINYINT、SMALLINT、MEDIUMINT、INT(INTEGER)、BIGINT。整数类型的属性字段可以添加AUTO_INCREMENT自增约束条件。表3.1列出了MySQL中的数值类型。

表3.1 MySQL中的数值类型

从表3.1中可以看到,不同类型整数存储所需的字节数是不同的,占用字节数最小的是TINYINT类型,占用字节最大的是BIGINT类型,相应的占用字节越多的类型所能表示的数值范围越大。根据占用字节数可以求出每一种数据类型的取值范围。例如,TINYINT需要1字节(8 bits)来存储,那么TINYINT无符号数的最大值为28-1(255)、TINYINT有符号数的最大值为27-1(127)。其他类型的整数的取值范围计算方法相同,如表3.2所示。

表3.2 不同整数类型的取值范围

【例3.1】创建表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    |       |
     +-------+-----------+------+-----+---------+-------+

不同的整数类型有不同的取值范围,并且需要不同的存储空间,因此应该根据实际需要选择最合适的类型,这样有利于提高查询的效率和节省存储空间。