mysql的长整型是“bigint”。bigint是ab字节或64位整数值,在存储极大整数值时非常有用。bigint与其他整数数据类型一样,可以是有符号或无符号的;有符号数据类型表示该列可以存储正整数和负整数值,而无符号数据类型表示该列只能存储正整数值。有符号bigint类型的范围在“-9223372036854775808”和“9223372036854775807”之间。
本教程操作环境:windows7系统、mysql8版本、dell g3电脑。
整数类型又称数值型数据,数值型数据类型主要用来存储数字。
mysql 提供了多种数值型数据类型,不同的数据类型提供不同的取值范围,可以存储的值范围越大,所需的存储空间也会越大。
mysql 主要提供的整数类型有 tinyint、smallint、mediumint、int、bigint,其属性字段可以添加 auto_increment 自增约束条件。下表中列出了 mysql 中的数值类型。
类型大小范围(有符号)范围(无符号)用途
tinyint 1个字节 (-128,127) (0,255) 小整数值
smallint 2个字节 (-32 768,32 767) (0,65 535) 大整数值
mediumint 3个字节 (-8 388 608,8 388 607) (0,16 777 215) 大整数值
int或integer 4个字节 (-2 147 483 648,2 147 483 647) (0,4 294 967 295) 大整数值
bigint 8个字节 (-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 类型。
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;
示例 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视频教程】
以上就是mysql的长整型是什么的详细内容。