当前位置:网站首页>MySQL BIGINT 数据类型
MySQL BIGINT 数据类型
2022-07-30 20:15:00 【web13618542420】
本文重点介绍 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 类型及其各种属性的范围。
先自我介绍一下,小编13年上师交大毕业,曾经在小公司待过,去过华为OPPO等大厂,18年进入阿里,直到现在。深知大多数初中级java工程师,想要升技能,往往是需要自己摸索成长或是报班学习,但对于培训机构动则近万元的学费,着实压力不小。自己不成体系的自学效率很低又漫长,而且容易碰到天花板技术停止不前。因此我收集了一份《java开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。添加下方名片,即可获取全套学习资料哦
边栏推荐
- KEIL问题:【keil Error: failed to execute ‘C:\Keil\ARM\ARMCC‘】
- el-input can only input integers (including positive numbers, negative numbers, 0) or only integers (including positive numbers, negative numbers, 0) and decimals
- GateWay实现负载均衡
- “数字化重构系统,搞定 CEO 是第一步”
- 推荐系统:评估指标【离线评估指标:RMSE(均方根误差)、AUC、准确率、召回率、F1】【在线评估:A/B测试】【一般要求响应时间<0.5s】
- JUnit 5测试中的临时目录(附实例及代码)
- 基于人脸的常见表情识别——模型搭建、训练与测试
- MySQL大总结
- Recommendation System - Sorting Layer: Sorting Layer Architecture [User and Item Feature Processing Steps]
- To the operation of the int variable assignment is atom?
猜你喜欢
随机推荐
推荐系统-排序层:排序层架构【用户、物品特征处理步骤】
[Node implements data encryption]
MySQL 多表关联一对多查询实现取最新一条数据
mysql 递归函数with recursive的用法
PHP低代码开发平台 V5.0.7新版发布
ceph的部署练习
MySQL database --- Addition, deletion, modification and query of MySQL tables (advanced)
excel数字显示e+17怎么恢复?excel数字变成了小数点+E+17的解决方法
Snowflake vs. Redshift的2022战报:两个数据平台谁更适合你?
推荐系统:实时性【特征实时性:客户端实时特征(秒级,实时)、流处理平台(分钟级,近实时)、分布式批处理平台(小时/天级,非实时)】【模型实时性:在线学习、增量更新、全量更新】
Maxwell 一款简单易上手的实时抓取Mysql数据的软件
化二次型为标准型
7.联合索引(最左前缀原则)
Android Studio 实现登录注册-源代码 (连接MySql数据库)
MySQL的 DDL和DML和DQL的基本语法
MySQL的on duplicate key update 的使用
推荐系统:概述【架构:用户/物品特征工程---->召回层---->排序层---->测试/评估】【冷启动问题、实时性问题】
倾斜文档扫描与字符识别(opencv,坐标变换分析)
JUnit 5测试中的临时目录(附实例及代码)
CDH集群spark-shell执行过程分析