在工作中经常要与mysql打交道,但是对mysql的各个字段类型一直都是一知半解,因此写本文总结记录一番。

对于int类型的一些基础知识其实上图已经说的很明白了,在这里想讨论下常用的int(11)代表什么意思,很长时间以来我都以为这代表着限制int的长度为11位,直到有天看到篇文章才明白,11代表的并不是长度,而是字符的显示宽度,在字段类型为int时,无论你显示宽度设置为多少,int类型能存储的最大值和最小值永远都是固定的,这里贴一些原文片段

The number in the parenthesis does not determines the max and min values that can be stored in the integer field. The max and min values that can be stored are always fixed.

The display width of the column does not affects the maximum value that can be stored in that column. A column with INT(5) or INT(11) can store the same maximum values. Also, if you have a column INT(20) that does not means that you will be able to store 20 digit values (BIGINT values). The column still will store only till the max values of INT.

那么照文中所说,所以无论怎么设置int类型的显示宽度,int所能存储的最大值和最小值是固定的,那么这个显示宽度到底有什么用呢?

当int字段类型设置为无符号且填充零(UNSIGNED ZEROFILL)时,当数值位数未达到设置的显示宽度时,会在数值前面补充零直到满足设定的显示宽度,为什么会有无符号的限制呢,是因为ZEROFILL属性会隐式地将数值转为无符号型,因此不能存储负的数值。

具体用以下代码解释。

首先创建一张表:

CREATE TABLE int_demo (

id INT(11) NOT NULL AUTO_INCREMENT,

a INT(11) NOT NULL,

b INT(11) UNSIGNED ZEROFILL NOT NULL,

c INT(5) DEFAULT NULL,

d INT(5) UNSIGNED ZEROFILL NOT NULL,

e INT(15) DEFAULT NULL,

PRIMARY KEY (`id`)

)

插入两条数据

INSERT INTO int_demo (a, b, c, d, e) VALUES (1, 1, 1, 1, 1);

INSERT INTO int_demo (a, b, c, d, e) VALUES (1234567890, 1234567890, 1234567890, 1234567890, 1234567890);

select * from int_demo;

id

a

b

c

d

e

1

1

00000000001

1

00001

1

2

1234567890

01234567890

1234567890

1234567890

1234567890

注释:如果用navicate软件查询出来并不会显示左边的0,但把数据导出时可看到真实的数据,猜测是软件对数据格式进行了处理?

从上个例子我们可以得出以下几个结论:

如果一个字段设置了无符号和填充零属性,那么无论这个字段存储什么数值,数值的长度都会与设置的显示宽度一致,如上述例子中的字段b,插入数值1显示为00000000001,左边补了10个零直至长度达到11位;

设置字段的显示宽度并不限制字段存储值的范围,比如字段d设置为int(5),但是仍然可以存储1234567890这个10位数字;

设置的字符宽度只对数值长度不满足宽度时有效,如d字段int(5),插入1时,长度不足5,因此在左边补充4个零直到5位,但是插入1234567890时超过了5位,这时的显示宽度就起不了作用了。

mysql的int11是指什么_MYSQL中的int(11)到底代表什么意思?相关推荐

  1. int mysql_「MYSQL」MYSQL中的int(11)到底代表什么意思?

    一.前言 在工作中经常要与mysql打交道,但是对mysql的各个字段类型一直都是一知半解,因此写本文总结记录一番. 二.简介 对于int类型的一些基础知识其实上图已经说的很明白了,在这里想讨论下常用 ...

  2. MySql 中的 int(11) 到底代表什么意思?

      对于 int 类型的一些基础知识其实上图已经说的很明白了,在这里想讨论下常用的 int(11) 代表什么意思,很长时间以来我都以为这代表着限制 int 的长度为 11 位,直到有天看到篇文章才明白 ...

  3. mysql的mtr是指什么_MySQL中MTR的概念

    MTR全称是Mini-Transaction,顾名思义,可以理解为"最小的事务",MySQL中把对底层页面的一次原子访问的过程称之为一个Mini-Transaction,这里的原子 ...

  4. 用通俗易懂的大白话彻底搞明白mysql的数据类型以及mysql中的int(11),这个11到底是啥?

    今天抽时间来讲一下mysql里的知识点,之前有不少人问过我,mysql中的int(11),这个11到底是啥意思?是11位的意思吗?你是否也想过这个问题,是否也有这个疑问? ok,今天就展开来讲一下,用 ...

  5. mysql如何插入图片和视频_mysql中怎样插入图片

    mysql中插入图片的方法:首先要在数据库中建表:然后装载JDBC驱动,建立连接:最后创建Statement接口类,来执行SQL语句即可. mysql中插入图片的方法: 1.首先,先要在数据库中建表. ...

  6. mysql 修改字段类型为字符串_MySQL中字段类型与合理的选择字段类型

    原标题:MySQL中字段类型与合理的选择字段类型 字段类型 数值 MySQL 的数值数据类型可以大致划分为两个类别,一个是 整数,另一个是 浮点数或小数. 许多不同的子类型对这些类别中的每一个都是可用 ...

  7. mysql 数字占几个字节_mysql中整数类型后面的数字,比如int(11),11代表11个字节吗?...

    原先对mysql不太理解,但也没有报错.但理解的不够深入.这次补上. 原来以为int(11)是指11个字节,int(10)就是10个字节.我错了. http://zhidao.baidu.com/li ...

  8. mysql什么情况会加意向锁_MySQL中的锁4-插入意向锁和自增锁

    插入意向锁(Insert Intention Lock) 插入意向锁本质上可以看成是一个Gap Lock 普通的Gap Lock 不允许 在 (上一条记录,本记录) 范围内插入数据 插入意向锁Gap ...

  9. mysql截取前几个字符串_mysql中截取指定字符前后的字符串

    使用SUBSTRING_INDEX()函数 substring_index(str,delim,count) str:要处理的字符串 delim:分隔符 count:分隔符计数 例子 取出上述表中数组 ...

  10. mysql创建外键级联更新_MySQL中利用外键实现级联删除、更新

    MySQL支持外键的存储引擎只有InnoDB,在创建外键的时候,要求父表必须有对应的索引,子表在创建外键的时候也会自动创建对应的索引.在创建索引的时候,可以指定在删除.更新父表时,对子表进行的相应操作 ...

最新文章

  1. linux服务器之间调用反应慢,Linux使用ssh远程登录服务器反应慢的解决办法
  2. 基于WinSvr2012共享文件夹的Hyper-V实时迁移之三实时迁移的实现及验证
  3. python详细安装教程linux-Python 环境安装步骤
  4. 3ds Max绘制青花瓷茶壶
  5. 哪个相机可以拍gif动图_直接拍摄gif动图的手机app你见过吗
  6. 大剑无锋之flume面试题【面试推荐】
  7. client mysql 逗号_mysql comment line client(MySQL命令行常用操作)
  8. icmp时间戳请求和应答程序实现_ICMP报文详解之ping实现
  9. 全国Python科研应用专题实操培训班通知
  10. np.array()和np.mat()区别
  11. pid算法matlab仿真程序和c程序,pid算法matlab仿真程序和c程序.doc
  12. bash sbin/start-yarn.sh出现localhost: rcmd: socket: Permission denied
  13. 【图像融合】基于matlab小波变换遥感图像融合【含Matlab源码 744期】
  14. SI 9000 及阻抗匹配学习笔记(四)
  15. Java链表与数组间的相互转换
  16. ng : 无法加载文件 C:\Users\AppData\Roaming\npm\ng.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅 https:/go.mi crosoft.c
  17. 电影推荐——基于关联分析Apriori算法
  18. 金蝶——“免、抵、退”税操作说明及帐务处理
  19. [luogu]P1852跳跳棋
  20. 构建神经网络- 手写字体识别案例

热门文章

  1. Metaweblog在Android上使用
  2. SmartFoxServer 2X 安装
  3. jquery设置元素的readonly和disabled
  4. [转载] 七龙珠第一部——第077话 皮拉夫大作战
  5. cacti的安装与配置(一)安装
  6. ubuntu和ok6410开发板之间架设nfs
  7. TCP/IP基础介绍
  8. 面试突击41:notify是随机唤醒吗?
  9. Android Bitmap缓存池使用详解
  10. utuntu 12.04 安装 配置 JAVA JDK