前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MySQL整型数据类型详解

MySQL整型数据类型详解

作者头像
星哥玩云
发布2022-08-17 15:24:00
7260
发布2022-08-17 15:24:00
举报
文章被收录于专栏:开源部署

  1. 对整数类型, MySQL 还支持类型名称后面的小括号内指定的显示宽度,例如int(5) 表示宽度小于5位时填满宽度,如果不显示指定宽度默认是int(11),一般配合zerofill使用下面来描述下

-- 创建表t1 有id1和id2字段,指定数值宽度分别为int 和int(5) CREATE TABLE t1(id1 INT, id2 INT(5)); -- 在里面都插入1 INSERT INTO t1 VALUES(1,1); -- 查询格式没有异常, 值是 id1=1, id2=1 SELECT * FROM t1; -- 分别修改id1 和id2字段类型, 加入 zerofill参数 ALTER TABLE t1 MODIFY id1 INT ZEROFILL; ALTER TABLE t1 MODIFY id2 INT(5) ZEROFILL; -- 再次查询时  id1=0000000001, id2=00001 SELECT * FROM t1;

  2. 整数类型还有一个属性 auto_increment。产生唯一标识,值一般从1开始,每行增加1. 定义为not null , 并且定义primary key或unique键如下:

CREATE TABLE a1 (id INT AUTO_INCREMENT NOT NULL,PRIMARY KEY); CREATE TABLE a1 (id INT AUTO_INCREMENT NOT NULL,PRIMARY KEY(id)); CREATE TABLE a1 (id INT AUTO_INCREMENT NOT NULL,UNIQUE(id));

  3. 对于小数表示, MySQL分为浮点数和定点数

  浮点数包括float,double。 定点数decimal 它是以字符串形式存放的,比浮点数精确, 用于倾向等精度高的数据。

  浮点数和定点数都可以加(M,D) 如:float(7,4)  值-999.9999 保存时进行了四舍五入, 如果插入是999.00009 ,值结果是999.0001。注意浮点数据后面跟(M,D)是非标准用法。

  定点数deciaml不指定精度时,默认整数为10, 默认小数位为0。

MySQL 的数据类型

在翻看老的数据表设计时,发现一个问题:数据表结构中存在 bigint(20) 类型的字段,但是 Java 中 Long 的最大值为 9223372036854775807,总共 19 位长度,那么问题来了,bigint(20) 的数据类型设计是否会造成 Java 类型的精度溢出问题?下面我们来分析一下这个问题,如有不正之处,欢迎批评指正。

MySQL 整型类型

数据格式:类型  [(M)]  [UNSIGNED]  [ZEROFILL]

TINYINT

M默认值为4

8位二进制数。 带符号数据范围:-128 到 127。 无符号数据范围:0到255。

SMALLINT

M默认值为6

16位二进制数。 带符号数据范围:-32768 到 32767。 无符号数据范围:0 到 65535。

MEDIUMINT

M默认值为9

24位二进制数。 带符号数据范围:-8388608 到 8388607。 无符号数据范围:0 到 16777215。

INT

M默认值为11

32位二进制数。 带符号数据范围:-2147483648 到 2147483647。 无符号数据范围:0 到 4294967295。

BIGINT

M默认值为20

64位二进制数。 带符号数据范围:-9223372036854775808 到 9223372036854775807。 无符号数据范围:0 到 18446744073709551615。

注意

我们进行数据表设计时,喜欢用 bigint(20)、int(10)、tinyint(2)之类的数据类型,类型后的数字并不表示数据存储长度,而是表示字段要显示的长度,只有在字段设置为 zerofill(以0填充)时,显示长度才会生效。

例如: int(5):假如列的值为99,如果该列指定了 zerofill,则在查询结果中会显示为 00099。

其他类型

BIT[M]

bit位类型,M 表示 bit 的位数,范围从1到64,如果 M 被忽略,默认为1。

BOOLEAN

MySQL 会将 BOOLEAN 类型转换为 TINYINT(4)。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档