Mysql

关注公众号 jb51net

关闭
首页 > 数据库 > Mysql > MySQL整型类型

MySQL中的整型类型示例详解

作者:JiaHao汤

MySQL数据库支持多种数据类型,其中数值类型用于存储数字数据,这篇文章主要介绍了MySQL中整型类型的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下

MySQL 中支持的整型类型

MySQL 中支持的整型类型包括 TINYINTSMALLINTMEDIUMINTINT/INTEGERBIGINT,分别代表小整数值、中整数值、大整数值、极大整数值。

数据类型字节大小有符号范围无符号范围
TINYINT1-128 到 1270 到 255
SMALLINT2-32768 到 327670 到 65535
MEDIUMINT3-8388608 到 83886070 到 16777215
INT/INTEGER4-2147483648 到 21474836470 到 4294967295
BIGINT8-9223372036854775808 到 9223,372036,8547758070 到 18446744073709551615

整型类型的可选参数

整型类型的可选参数有 3 个,分别是 MUNSIGNEDZEROFILL

M

M 表示显示宽度,M 的取值范围是 (0,255)。例如,int(5) 表示当数据宽度小于 5 位的时候在数字前面需要用字符填满宽度。M 需要配合 ZEROFILL 一起使用才有意义,否则指定显示宽度无效。

需要注意的是,设置显示宽度不会对插入的数据有任何影响,数据还是按照它所设置的整型类型的实际宽度进行保存,即显示宽度与类型可以存储的值范围无关。从 MySQL 8.0.17 开始,整数数据类型不推荐使用显示宽度属性。

整型数据类型可以在定义表结构时指定所需要的显示宽度,如果不指定,则系统为每一种类型指定默认的宽度值。例如:

CREATE TABLE test_table(
  X TINYINT,
  Y SMALLINT,
  Z MEDIUMINT,
  M INT,
  N BIGINT
);

通过 DESC 命令查看表结构(MySQL 5.7 版本中显示宽度如下,MySQL 8 版本中不再显示宽度):

TINYINT 有符号数和无符号数的取值范围分别为 -128~127 和 0~255,由于负号占了一个数字位,因此 TINYINT 默认的显示宽度为 4。同理,其他整数类型的默认显示宽度与其有符号数的最小值的宽度相同。

UNSIGNED

UNSIGNED 是无符号类型(非负),所有的整数类型都有一个可选的属性 UNSIGNED(无符号属性),无符号整数类型的最小取值为 0。所以,如果需要在 MySOL 数据库中保存非负整数值时,可以将整数类型设置为无符号类型。

使用 UNSIGNED 将整数类型设置为无符号类型的案例:

CREATE TABLE test_table(
  X TINYINT UNSIGNED,
  Y SMALLINT UNSIGNED,
  Z MEDIUMINT UNSIGNED,
  M INT UNSIGNED,
  N BIGINT UNSIGNED
);

通过 DESC 命令查看表结构(MySQL 5.7 版本中显示宽度,MySQL 8 版本中不再显式宽度):

需要注意的是,TINYINTSMALLINTMEDIUMINTINT 类型的显示宽度都会缩小一位,因为不再需要表示负数。

ZEROFILL

ZEROFILL 即 0 填充,ZEROFILL 的作用是在某列指定了 ZEROFILL 的情况下,MySQL 会自动为当前列添加 UNSIGNED 属性,并且当该列显示宽度不够 M 位时,使用 0 在列值左边填充,如果超过 M 位,只要不超过数据存储范围即可。

ZEROFILL 搭配 M 的使用案例:

CREATE TABLE test_table (
    X TINYINT(5) ZEROFILL,
    Y SMALLINT(10) ZEROFILL
);

通过 DESC 命令查看表结构(MySQL 5.7 版本中显示宽度,MySQL 8 版本中不再显式宽度):

总结 

到此这篇关于MySQL中整型类型的文章就介绍到这了,更多相关MySQL整型类型内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文