MySQL中bigint(20)中的20代表含义

这个20可以理解为数据宽度,不是取值范围。

整数类型

对于整数类型(int,bigint),取值范围是固定的,例如:int的取值范围是:-2147483648 - 2147483647,就只能存这个范围的数,无论写int(3),还是写int(20),都不数据的取值范围。

那写这个有什么用呢?

其实是在底层存储的时候不一样,写了int(20),如果只存了一个3,其实是在3前面补空格的,补充到20位的宽度。

补空格是默认的方式,也可以zerofill关键字可以填充0,例如int(20)存3,填充0的话存储的就是00000 00000 00000 00003

所有整数类型和这个一致

字符串类型

对于字符串类型,这个范围就用的上了,标识多少就只能存多少字符,多存了就会丢失。

浮点数类型

对于浮点数类型,和整数一样,这个范围基本没有影响。

常用数据类型的取值范围

数据类型 取值范围 占用字节
tinyint -128 - 127 1
int -2147483648 - 2147483647 4
bigint -9223372036854775808 - 9223372036854775807 8

更多MySQL列类型可以参考我的这篇文章:
详解MySQL列类型

相关推荐
杨云龙UP21 小时前
Linux生产环境下Oracle RMAN 备份、核查、清理与验证常用命令整理_20260330
linux·运维·服务器·数据库·oracle
橙子家1 天前
关于列式存储(Column-base Storage)的几个要点解读
数据库
٩( 'ω' )و2601 天前
MySQL基础
数据库·mysql
生命不息战斗不止(王子晗)1 天前
mysql基础语法面试题
java·数据库·mysql
知识分享小能手1 天前
MongoDB入门学习教程,从入门到精通,MongoDB应用程序设计知识点梳理(9)
数据库·学习·mongodb
流星白龙1 天前
【MySQL】19.MySQL用户管理
android·mysql·adb
一直都在5721 天前
Redis (一)
数据库·redis·缓存
字符串str1 天前
sql的基本技术栈
数据库·sql·oracle
秦jh_1 天前
【Redis】客户端使用
数据库·redis·缓存
剑之所向1 天前
DataEase 做大屏,只认 2 种 SQL 格式
数据库·sql·正则表达式