MySQL BIGINT 数据类型 | 您所在的位置:网站首页 › 数据库创建表数据类型 › MySQL BIGINT 数据类型 |
本文重点介绍 MySQL BIGINT 数据类型,并研究我们如何使用它来存储整数值。我们还将了解它的范围、存储大小和各种属性,包括有符号、无符号和零填充。 整数类型(精确值) - INTEGER、INT、SMALLINT、TINYINT、MEDIUMINT、BIGINTMySQL 支持 SQL 标准整数类型 INTEGER(或INT)和 SMALLINT. 作为标准的扩展,MySQL 还支持整数类型 TINYINT、MEDIUMINT和 BIGINT. 下表显示了每种整数类型所需的存储空间和范围。 表 11.1 MySQL 支持的整数类型所需的存储和范围 类型存储(字节)签名的最小值最小值无符号签署的最大值最大值无符号TINYINT1-1280127255SMALLINT2-3276803276765535MEDIUMINT3-83886080838860716777215INT4-2147483648021474836474294967295BIGINT8-2630263-1264-1 MySQL BIGINTBIGINT 是 ab 字节或 64 位整数值,在存储大整数值时非常有用。 MySQL BIGINT 与任何其他 MySQL 整数数据类型一样,可以是有符号或无符号的。有符号数据类型表示该列可以存储正整数和负整数值。这是 MySQL 中大多数整数类型的默认类型。因此,除非明确指定,否则任何整数类型列都可以存储正整数和负整数。 另一方面,无符号数据类型表示该列只能存储正整数值。 签名 MySQL BIGINT 类型的范围在 -9223372036854775808 和 9223372036854775807 之间 对于无符号 BIGINT 类型,取值范围为 0 到 18446744073709551615。 BIGINT 类型的另一个属性是 ZEROFILL。在列上指定此属性后,该列将自动设置为 UNSIGNED。 zerofill 属性也用零填充空格。 例子让我们看几个例子来说明如何使用 BIGINT 类型。 CREATE DATABASE IF NOT EXISTS integers; USE integers;接下来,让我们创建一个表并用各种 BIGINT 列填充它,如下面的查询所示: CREATE TABLE examples(x BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY, y BIGINT UNSIGNED, z BIGINT ZEROFILL );示例 1 让我们首先尝试将所有正值添加到表中: INSERT INTO examples(x,y,z) VALUES (1,2,3);在上面的示例查询中,这些值是可接受的,因为它们在有符号、无符号和 zerofill BIGINT 类型的范围内。 SELECT * FROM examples; +---+------+----------------------+ | x | y | z | +---+------+----------------------+ | 1 | 2 | 00000000000000000003 | +---+------+----------------------+ 1 row in set (0.01 sec)示例 2 在下一个案例中,让我们尝试添加所有负值。示例查询如下: INSERT INTO examples(x,y,z) VALUES (-1,-2,-3); ERROR 1264 (22003): Out of range value for column 'y' at row 1在这种情况下,查询失败,因为 y 列是无符号的。因此,为列分配负值超出了列范围。 示例 3 我们可以观察到与上述第三列类似的情况。zerofill 属性自动使列无符号,使添加负值超出范围。一个例子是: INSERT INTO examples(x,y,z) VALUES (-1,2,-3); ERROR 1264 (22003): Out of range value for column 'z' at row 1示例 4 现在让我们尝试添加每种类型的最大值。一个示例查询是: INSERT INTO examples(x,y,z) VALUES (-9223372036854775808, 9223372036854775808, 9223372036854775808);在上面的示例中,由于所有值都在范围内,因此查询成功执行。 考虑下面的查询: INSERT INTO examples(x,y,z) VALUES (9223372036854775807, 9223372036854775808, 9223372036854775808);您会注意到所有值都在最大值上。由于 x 列设置为 AUTO_INCREMENT,因此向其添加值将失败。 INSERT INTO examples(y,z) VALUES (9223372036854775808, 9223372036854775808); ERROR 1062 (23000): Duplicate entry '9223372036854775807' for key 'examples.PRIMARY'但是,如果在 MySQL 中禁用了严格模式,您可以插入超出范围的值。 SELECT * FROM examples;结论 在本教程中,我们讨论了 MySQL BININT 类型及其各种属性的范围。 |
CopyRight 2018-2019 实验室设备网 版权所有 |