意见箱
恒创运营部门将仔细参阅您的意见和建议,必要时将通过预留邮箱与您保持联络。感谢您的支持!
意见/建议
提交建议

mysql长整型指的是什么

来源:恒创科技 编辑:恒创科技编辑部
2023-12-15 23:05:59

本篇内容介绍了“mysql长整型指的是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

mysql的长整型是“BIGINT”。BIGINT是ab字节或64位整数值,在存储极大整数值时非常有用。BIGINT与其他整数数据类型一样,可以是有符号或无符号的;有符号数据类型表示该列可以存储正整数和负整数值,而无符号数据类型表示该列只能存储正整数值。有符号BIGINT类型的范围在“-9223372036854775808”和“9223372036854775807”之间。


mysql长整型指的是什么

本教程操作环境:windows7系统、mysql8版本、Dell G3电脑。

整数类型又称数值型数据,数值型数据类型主要用来存储数字。

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

MySQL 主要提供的整数类型有 TINYINT、SMALLINT、MEDIUMINT、INT、BIGINT,其属性字段可以添加 AUTO_INCREMENT 自增约束条件。下表中列出了 MySQL 中的数值类型。

类型大小范围(有符号)范围(无符号)用途TINYINT1个字节(-128,127)(0,255)小整数值SMALLINT2个字节(-32 768,32 767)(0,65 535)大整数值MEDIUMINT3个字节(-8 388 608,8 388 607)(0,16 777 215)大整数值INT或INTEGER4个字节(-2 147 483 648,2 147 483 647)(0,4 294 967 295)大整数值BIGINT8个字节(-9,223,372,036,854,775,808,9 223 372 036 854 775 807)(0,18 446 744 073 709 551 615)极大整数值

从上表中可以看到,不同类型的整数存储所需的字节数不相同,占用字节数最小的是 TINYINT 类型,占用字节最大的是 BIGINT 类型,占用的字节越多的类型所能表示的数值范围越大。因而,mysql的长整型是“BIGINT”。

MySQL BIGINT

BIGINT 是 ab 字节或 64 位整数值,在存储大整数值时非常有用。

MySQL BIGINT 与任何其他 MySQL 整数数据类型一样,可以是有符号或无符号的。有符号数据类型表示该列可以存储正整数和负整数值。这是 MySQL 中大多数整数类型的默认类型。因此,除非明确指定,否则任何整数类型列都可以存储正整数和负整数。

另一方面,无符号数据类型表示该列只能存储正整数值。

有符号 MySQL BIGINT 类型的范围在 -9223372036854775808 和 9223372036854775807 之间

对于无符号 BIGINT 类型,取值范围为 0 到 18446744073709551615。

BIGINT 类型的另一个属性是 ZEROFILL。在列上指定此属性后,该列将自动设置为 UNSIGNED。

zerofill 属性也用零填充空格。

BIGINT示例:

让我们看几个例子来说明如何使用 BIGINT 类型。

CREATEDATABASEIFNOTEXISTSintegers;
USEintegers;

接下来,让我们创建一个表并用各种 BIGINT 列填充它,如下面的查询所示:

CREATETABLEexamples(xBIGINTNOTNULLAUTO_INCREMENTPRIMARYKEY,yBIGINTUNSIGNED,zBIGINTZEROFILL);

示例 1

让我们首先尝试将所有正值添加到表中:

INSERTINTOexamples(x,y,z)VALUES(1,2,3);

在上面的示例查询中,这些值是可接受的,因为它们在有符号、无符号和 zerofill BIGINT 类型的范围内。

SELECT*FROMexamples;

示例 2

在下一个案例中,让我们尝试添加所有负值。示例查询如下:

INSERTINTOexamples(x,y,z)VALUES(-1,-2,-3);
ERROR1264(22003):Outofrangevalueforcolumn'y'atrow1

在这种情况下,查询失败,因为 y 列是无符号的。因此,为列分配负值超出了列范围。

示例 3

我们可以观察到与上述第三列类似的情况。zerofill 属性自动使列无符号,使添加负值超出范围。一个例子是:

INSERTINTOexamples(x,y,z)VALUES(-1,2,-3);
ERROR1264(22003):Outofrangevalueforcolumn'z'atrow1

示例 4

现在让我们尝试添加每种类型的最大值。一个示例查询是:

INSERTINTOexamples(x,y,z)VALUES(-9223372036854775808,9223372036854775808,9223372036854775808);

在上面的示例中,由于所有值都在范围内,因此查询成功执行。

考虑下面的查询:

INSERTINTOexamples(x,y,z)VALUES(9223372036854775807,9223372036854775808,9223372036854775808);

您会注意到所有值都在最大值上。由于 x 列设置为 AUTO_INCREMENT,因此向其添加值将失败。

INSERTINTOexamples(y,z)VALUES(9223372036854775808,9223372036854775808);
ERROR1062(23000):Duplicateentry'9223372036854775807'forkey'examples.PRIMARY'

但是,如果在 MySQL 中禁用了严格模式,您可以插入超出范围的值。

SELECT*FROMexamples;

“mysql长整型指的是什么”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注恒创网站,小编将为大家输出更多高质量的实用文章!

上一篇: MySQL的存储过程实例分析 下一篇: mysql中金额用哪个类型