MySQL中BIGINT数据类型如何存储整数值
作者:allway2 发布时间:2024-01-23 21:15:45
前言
本文重点介绍 MySQL BIGINT 数据类型,并研究我们如何使用它来存储整数值。我们还将了解它的范围、存储大小和各种属性,包括有符号、无符号和零填充。
整数类型(精确值) - INTEGER、INT、SMALLINT、TINYINT、MEDIUMINT、BIGINT
MySQL 支持 SQL 标准整数类型 INTEGER
(或INT
)和 SMALLINT
. 作为标准的扩展,MySQL 还支持整数类型 TINYINT
、MEDIUMINT
和 BIGINT
. 下表显示了每种整数类型所需的存储空间和范围。
表 11.1 MySQL 支持的整数类型所需的存储和范围
类型 | 存储(字节) | 签名的最小值 | 最小值无符号 | 签署的最大值 | 最大值无符号 |
---|---|---|---|---|---|
TINYINT | 1 | -128 | 0 | 127 | 255 |
SMALLINT | 2 | -32768 | 0 | 32767 | 65535 |
MEDIUMINT | 3 | -8388608 | 0 | 8388607 | 16777215 |
INT | 4 | -2147483648 | 0 | 2147483647 | 4294967295 |
BIGINT | 8 | -263 | 0 | 263-1 | 264-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 类型及其各种属性的范围。
来源:https://blog.csdn.net/allway2/article/details/123171630


猜你喜欢
- python中reduce和map简介map(func,seq1[,seq2...]) :将函数func作用于给定序列的每个元素,并用一个列
- tkinter的锚点(anchor)问题tkinter中anchor参数(注意,参数的英文都是小写)字母方位n北s南w西e东center中心
- 1。注意用SQL分析器可以看select出来的东西select right(convert(varchar(30),getdate(),12
- 下面的代码主要用于使用python语言调用NASA官方的MODIS处理工具HEG进行投影坐标转换与重采样批量处理主要参考HEG的用户手册:h
- 一、背景1.项目描述你拥有一个超市(Supermarket Mall)。通过会员卡,你用有一些关于你的客户的基本数据,如客户ID,年龄,性别
- 在Python语言中,Uincode字符串处理一直是一个容易让人迷惑的问题。许多Python爱好者经常因为搞不清Unicode、UTF-8还
- 前言最近写了个CNode 社区的微信小程序版本,把在微信小程序中使用npm包,踩的坑记录一下,希望能给遇到类似问题的小伙伴,提供一些思路和方
- 引言如今 Python 成为机器学习和大量使用数据操作的科学领域的主流语言; 它拥有各种深度学习框架和完善的数据处理和可视化工具。但是,Py
- 动态添加表单项iview的动态添加表单很简单,只需设置好表单项为一个array,添加新项目的时候就push一个默认好的值,剩下的iview会
- 常用的python第三方库安装工具大概有三种:1、pip (分为cmd和conda)(推荐)2、easy_install &n
- 最近因项目需要用ACCESS做数据库开发WEB项目 看论坛上还许多人问及ACCESS被注入的安全问题 许多人解决的方法仍然是用Replace
- 像素是计算机视觉中图像的重要属性。它们是表示图像 * 定空间中光的颜色强度的数值,是图像中数据的最小单位。图像中的像素总数是高度、宽度和通道的
- 主键表的主键(primary key,主关键字)是表中的一个或多个字段,它的值用于惟一地标识表中的某一条记录。一个表不能有多个主关键字,并且
- 说明eventlet是一个必备工具,经常用,绿化原理有点忘记了,重新复习一遍.三个主要问题 1. 绿化的原理是什么?2. 绿化怎么
- 目录简介环境要求:安装小试一下创建爬虫将请求头转为json格式使用简介feapder 是一款上手简单,功能强大的Python爬虫框架,使用方
- BigPipe 是 Facebook 开发的优化网页加载速度的技术。网上几乎没有用 node.js 实现的文章,实际上,不止于 node.j
- 先导入模块:from django.core.paginator import Paginator, EmptyPage, PageNotA
- Python标准库中的BaseHTTPServer模块实现了一个基础的HTTP服务器基类和HTTP请求处理类。这在文章python探索之Ba
- 序 言哈喽兄弟们,好久不见!最近实在太忙了,所以又双叒叕断更了~表弟大学快毕业了,学了一个学期Python居然还不会写学生管理系统,真的给我
- 一维插值插值不同于拟合。插值函数经过样本点,拟合函数一般基于最小二乘法尽量靠近所有样本点穿过。常见插值方法有拉格朗日插值法、分段插值法、样条