文章目录

  • 一. 背景
  • 二. INT类型的总结
    • 1. 概述
    • 2. 详述
      • 2.1 bit[M]
      • 2.2 TINYINT([M])[unsigned][zerofill]
      • 2.3 SMALLINT([M])[unsigned][zerofill]
      • 2.4 MEDIUMINT([M])[unsigned][zerofill]
      • 2.5 INT([M])[unsigned][zerofill]
      • 2.6 BIGINT([M])[unsigned][zerofill]
    • 3. 说明
  • 参考资料

一. 背景

  • 在设计数据库表的时候,如果字段是数值型,经常会有几个选项(tinyint [unsigned]smallint [unsigned]mediumint [unsigned]int [unsigned]bigint [unsigned]),但总不知道该使用哪个类型,下面总结了一下。

二. INT类型的总结

1. 概述

数值类型 占用字节 数据范围 无符号数据范围
tinyint 1 -128~127 0~255
smallint 2 -32768~32767 0~65535
mediumint 3 -8388608~8388607 0~16777215
int 4 -2147483648~2147483647 0~4294967295
bigint 8 -9223372036854775808~9223372036854775807 0~18446744073709551615

2. 详述

  • 说明:1 bytes = 8 bit,因此一个字节最多可以代表的数据长度是2的8次方(11111111),转换为实际值即-128到127。

2.1 bit[M]

  1. 概述:位字段类型。
  2. M:表示每个值包含的位数,如bit(2)表示包含2位的一个值。M的范围是[1,64],如果M缺省,默认为1。

2.2 TINYINT([M])[unsigned][zerofill]

  1. 概述:很小的整数。
  2. M:默认为4。
  3. 数值范围
    • 带符号的范围:-128到127
    • 无符号的范围:0到255
  4. boolean类型:是TINYINT(1)的同义词。0值被视为假;非0值视为真。

2.3 SMALLINT([M])[unsigned][zerofill]

  1. 概述:小的整数。
  2. M:默认为6。
  3. 数值范围
    • 带符号的范围: -32768到32767
    • 无符号的范围:0到65535

2.4 MEDIUMINT([M])[unsigned][zerofill]

  1. 概述:中等大小的整数。
  2. M:默认为9。
  3. 数值范围
    • 带符号的范围: -8388608到8388607
    • 无符号的范围:0到16777215

2.5 INT([M])[unsigned][zerofill]

  1. 概述:普通大小的整数。
  2. M:默认为11。
  3. 数值范围
    • 带符号的范围: -2147483648到2147483647
    • 无符号的范围:0到4294967295

2.6 BIGINT([M])[unsigned][zerofill]

  1. 概述:大整数。
  2. M:默认为20。
  3. 数值范围
    • 带符号的范围: -9223372036854775808到9223372036854775807
    • 无符号的范围:0到18446744073709551615

3. 说明

  • M的含义:并不是指存储在数据库中的具体长度。只有同时指定了zerofill,M才会发挥作用,即左边用0来填充。
  • 示例:tinyint(1)和tinyint(2)的区别
CREATE TABLE `test` (                                  `id` int(11) NOT NULL AUTO_INCREMENT,                                                  `state1` tinyint(1) unsigned zerofill DEFAULT NULL,   `state2` tinyint(2) unsigned zerofill DEFAULT NULL,  `state3` tinyint(3) unsigned zerofill DEFAULT NULL,  `state4` tinyint(4) unsigned zerofill DEFAULT NULL,  PRIMARY KEY (`id`)                                   ) ENGINE=MyISAM AUTO_INCREMENT=6 DEFAULT CHARSET=utf8  insert into test (state1,state2,state3,state4) values(4,4,4,4);
select * from test;
  • 结果
id state1 state2 state3 state4
1 4 04 004 0004

参考资料

  • tinyint(1)和tinyint(4)的区别和用法
  • mysql中tinyint(1)与tinyint(2)的区别

数据库中INT类型概述相关推荐

  1. 数据库中int类型存在空数据开发过程中model和dal层处理方法

    model层 public Int32? IsFullAttendance { get; set; } dal层  if (dr["IsFullAttendance"] + &qu ...

  2. 数据库中字段类型对应的C#中的数据类型

    数据库中字段类型对应C#中的数据类型: 数据库                 C#程序 int int32 text string bigint int64 binary System.Byte[] ...

  3. MyBatis映射文件如何给数据库的int类型字段“插入”string类型记录

    MyBatis映射文件如何给数据库的int类型字段"插入"string类型记录. 数据库中对应字段名称和类型如下: 给数据库的int类型字段"插入"string ...

  4. golang中int类型切片无需传指针

    golang中int类型切片无需传指针就可以改变切片的值 func main() {x := []int{1, 2, 3}func(arr []int) {arr[0] = 7fmt.Println( ...

  5. java中时间入数据库格式转换_数据库中字段类型为datetime,转换成java中的Date类型...

    数据类型对照 点击打开链接 JDBC: PreparedStatement ps = conn.prepareStatement(sql); ResultSet rs = ps.executeQuer ...

  6. 使用MyBatis Plus 3.2.0版本插件代码生成器生成实体类后,对于数据库中字段类型datetime的字段会转变为LocalDateTime类型

    问题描述: 使用MyBatis Plus 3.2.0版本插件代码生成器生成实体类后,对于数据库中字段类型datetime的字段会转变为LocalDateTime类型,IDEA提示报错"Usa ...

  7. 关于java中int类型的取值范围等问题

    java中int类型取值范围问题 java中int的类型占4个字节,与操作系统无关,要弄明白int的取值范围问题. 首先,我们来看一下byte的取值范围 byte 大小一个字节. 如:1111 111 ...

  8. python int占用多少字节数_python中int类型占了多少个字节

    python中int类型占了多少个字节 发布时间:2020-11-20 14:04:35 来源:亿速云 阅读:73 作者:小新 小编给大家分享一下python中int类型占了多少个字节,相信大部分人都 ...

  9. Mysql 数据库表中 int 类型的长度

    Mysql 我们平时创建一个表对 int 类型习惯设置 int(11) ,不知道你有没有试过设置其他长度有什么影响吗? 下面咱们来实验一下啦. 以下是每个整数类型的存储和范围: 类型 字节 最小值 最 ...

最新文章

  1. stm32逆向与安全科普,bin文件逆向反汇编
  2. 机器学习中梯度下降算法的实际应用和技巧
  3. linux 设置git ip,centos7安装gitlab并更改端口IP地址
  4. 条件注释判断兼容浏览器版本CSS HACK !--[if !IE]!--[if IE]!--[if lt IE 6]!--[if gte IE 6]...
  5. 在ASP.NET页面中实现数据饼图(转载)
  6. apk安装到电视上看不到图标_零基础搭建电视直播APP平台第二弹(修改APP)
  7. Ansible详解(十一)——Ansible Template高级控制
  8. GDAL和GeoPandas的安装
  9. OSPF计算环路:RFC:2328与RFC1583
  10. PostgreSQL中文手册
  11. android开发百度地图LocationClient找不到 解决
  12. 2020-12-31
  13. 网络训练时使用不同学习率策略(Poly)以及学习率是如何计算
  14. C语言 生成随机数 srand用法 伪随机函数rand srand需不需要重新播种问题 srand该不该放在循环里
  15. Mac电脑上Android Studio自带模拟器无法关闭
  16. 1813 句子相似性 III
  17. 临时抱佛脚版_移动端适配布局_flex+rem+响应式
  18. 「涪陵榨菜」使用区块链溯源系统?回应:看榨菜集团的安排
  19. Vue 实例实战之 Vue webpack 仿去哪儿网App页面开发(应用中的几个页面简单实现)
  20. 【渝粤题库】陕西师范大学200551 英语语音

热门文章

  1. 论文阅读:Generation-Augmented Retrieval for Open-Domain Question Answering
  2. gdb: 疑惑1:info symbol为何可以看到atomicity.h的代码,但是代码里确实没有看到相关的代码
  3. 数位dp总结 之 从入门到模板
  4. 【Unity实战】制作类元气骑士、挺进地牢——俯视角射击游戏多种射击效果(二)(附源码)
  5. webflux + springboot 整合(史上最全)
  6. 【华为交换机忘记Console密码恢复】
  7. 转载_我的Debian GNU/Linux安装全流程
  8. 什么是CI CD? 什么是DevOPS?他们有什么联系和区别?
  9. 使用Behavior Designer插件简单制作NPC AI
  10. 使用Servlet和JSP开发Java应用程序 ---- 简单模拟天猫购物页面