MySQL中BIGINT数据类型如何存储整数值

 更新时间:2022年10月26日 12:00:26   作者:allway2  
mysql数据库设计,其中对于数据性能优化,字段类型考虑很重要,下面这篇文章主要给大家介绍了关于MySQL中BIGINT数据类型如何存储整数值的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下

前言

本文重点介绍 MySQL BIGINT 数据类型,并研究我们如何使用它来存储整数值。我们还将了解它的范围、存储大小和各种属性,包括有符号、无符号和零填充。

整数类型(精确值) - INTEGER、INT、SMALLINT、TINYINT、MEDIUMINT、BIGINT

MySQL 支持 SQL 标准整数类型 INTEGER(或INT)和 SMALLINT. 作为标准的扩展,MySQL 还支持整数类型 TINYINTMEDIUMINT和 BIGINT. 下表显示了每种整数类型所需的存储空间和范围。

表 11.1 MySQL 支持的整数类型所需的存储和范围

类型存储(字节)签名的最小值最小值无符号签署的最大值最大值无符号
TINYINT1-1280127255
SMALLINT2-3276803276765535
MEDIUMINT3-83886080838860716777215
INT4-2147483648021474836474294967295
BIGINT8-2630263-1264-1

MySQL BIGINT

BIGINT 是 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 <strong>set</strong> (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 类型及其各种属性的范围。

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

相关文章

  • MySQL嵌套查询实例详解

    MySQL嵌套查询实例详解

    这篇文章主要介绍了MySQL嵌套查询的使用技巧,结合实例形式较为详细的分析了MySQL嵌套查询参数设置、使用方法与注意事项,需要的朋友可以参考下
    2015-12-12
  • mysqldump加-w参数备份数据时需要注意的事项

    mysqldump加-w参数备份数据时需要注意的事项

    这篇文章主要介绍了mysqldump加-w参数备份数据时需要注意的事项,需要的朋友可以参考下
    2014-06-06
  • MYSQL 高级文本查询之regexp_like和REGEXP详解

    MYSQL 高级文本查询之regexp_like和REGEXP详解

    在MySQL中,regexp_like和REGEXP都是用于执行正则表达式搜索的函数,这篇文章主要介绍了MYSQL 高级文本查询之regexp_like和REGEXP,需要的朋友可以参考下
    2023-05-05
  • CentOS 7中安装mysql server的步骤分享

    CentOS 7中安装mysql server的步骤分享

    这篇文章主要介绍了CentOS 7中安装mysql server的步骤分享,需要的朋友可以参考下
    2015-09-09
  • mysql启动提示:错误2系统找不到指定文件的解决方案

    mysql启动提示:错误2系统找不到指定文件的解决方案

    这篇文章主要给大家介绍了mysql启动提示:错误2系统找不到指定文件的解决方案,文中通过图文结合的方式给大家讲解的非常详细,对大家的学习或工作有一定的帮助,需要的朋友可以参考下
    2024-02-02
  • 你的like语句为什么没索引详解

    你的like语句为什么没索引详解

    这篇文章主要给大家介绍了关于你的like语句为什么没索引的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用mysql具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-10-10
  • Mysql join联表及id自增实例解析

    Mysql join联表及id自增实例解析

    这篇文章主要介绍了Mysql join联表及id自增实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-09-09
  • MySQL表的增删改查(CRUD)

    MySQL表的增删改查(CRUD)

    这篇文章主要介绍了如何对数据库增删改查,想要更全面了解的小伙伴,可以详细阅读本文
    2023-03-03
  • MYSQL增加索引语句小结

    MYSQL增加索引语句小结

    这篇文章主要给大家介绍了关于MYSQL增加索引的相关资料,索引是一种特殊的文件(InnoDB数据表上的索引是表空间的一个组成部分),它们包含着对数据表里所有记录的引用指针,需要的朋友可以参考下
    2023-09-09
  • mysql 8.0.15 安装图文教程及数据库基础

    mysql 8.0.15 安装图文教程及数据库基础

    这篇文章主要为大家详细介绍了mysql 8.0.15 安装方法图文教程,及数据库基础知识,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-03-03

最新评论