原文地址:https://blog.csdn.net/allenjay11/article/details/76549503 今天在添加数据的时候,发现当数据类型为 int(11) 时,我当时让用户添加数据时,最大输入的长度为11位,结果,添加数据添加不上,导致出现问题,我又改为最大长度为10位,结果验证9个1的时候是正常的,再次验证9个9的时候又失败了. 经过查询资料,最终找到了关于mysql中的数据类型 int(11)的介绍 在SQL语句中int代表你要创建字段的类型,int代表整型,11代…
原文地址:https://blog.csdn.net/allenjay11/article/details/76549503 今天在添加数据的时候,发现当数据类型为 int(11) 时,我当时让用户添加数据时,最大输入的长度为11位,结果,添加数据添加不上,导致出现问题,我又改为最大长度为10位,结果验证9个1的时候是正常的,再次验证9个9的时候又失败了. 经过查询资料,最终找到了关于mysql中的数据类型 int(11)的介绍 在SQL语句中int代表你要创建字段的类型,int代表整型,11代…
参考文献:https://segmentfault.com/a/1190000012479448 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 ma…
int(11)最大长度是多少,MySQL中varchar最大长度是多少? int(11)最大长度是多少? 在SQL语句中int代表你要创建字段的类型,int代表整型,11代表字段的长度. 这个11代表显示宽度,整数列的显示宽度与mysql需要用多少个字符来显示该列数值,与该整数需要的存储空间的大小都没有关系,比如,不管设定了显示宽度是多少个字符,bigint都要占用8个字节. int是整型,(11)是指显示字符的长度,但要加参数的,最大为255,比如它是记录行数的id,插入10笔资料,它就显示0…
mysql中int.bigint.smallint.tinyint 长度 bigint -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型数据,存储大小为 8 个字节. int -2^31 (-2,147,483,648) 到 2^31-1 (2,147,483,647) 的整型数据,存储大小为 4 个字节. smallint -2^15 (-32,768) 到 2^15-1 (32,767) 的整型数据,存储大小为 2…
原先对mysql不太理解,但也没有报错.但理解的不够深入.这次补上. 原来以为int(11)是指11个字节,int(10)就是10个字节.我错了. http://zhidao.baidu.com/link?url=puYWaGBQNKNHgffO5kdvXshF3KmX8OuB4Mor3HXapbNHa8m1CdlF8PJTqVuKa1eKcEd6Bv2NKUr3I-KJr5-7ISLhBsmf17Lu69vxv2aR99_ mysql的基本数据类型里几个int如下:类型 大小 范围(有符号)…
[1]int(3) 和 int(11)的区别(思维惯性认知错误) 这里的3或11代表的是存储在数据库中的具体的长度,总以为int(3)只能存储3个长度的数字,int(11)只会存储11个长度的数字. [2]Mysql基础知识 学习Mysql基本数据类型时,我们已知: 从声明字段是int类型的那一刻起,int类型的字段就是占四个字节,一个字节8位,也就是4*8=32位. 因此,可以表示的数字个数是2的32次方(2^32 = 4294 9672 96个数字) 而4294 9672 96个数字也就是[…
注意:这里的M代表的并不是存储在数据库中的具体的长度,以前总是会误以为int(3)只能存储3个长度的数字,int(11)就会存储11个长度的数字,这是大错特错的. 其实当我们在选择使用int的类型的时候,不论是int(3)还是int(11),它在数据库里面存储的都是4个字节的长度,在使用int(3)的时候如果你输入的是10,会默认给你存储位010,也就是说这个3代表的是默认的一个长度,当你不足3位时,会帮你不全,当你超过3位时,就没有任何的影响. 前天组管问我 int(10)与int(11)有什…
mysql在建表的时候int类型后的长度代表什么? 是该列允许存储值的最大宽度吗? 为什么我设置成int(1), 也一样能存10,100,1000呢.  当时我虽然知道int(1),这个长度1并不代表允许存储的宽度,但却没有一个合理的解释. 或者说对这个长度也没有真正的研究过到底代表什么, 平时都用int(11), 也不知道为什么要11位. 所以我在网上查阅了一些资料, 也仔细的看了mysql手册关于int data type的说法.   以下是每个整数类型的存储和范围(来自mysql手册) …
1 bytes = 8 bit ,一个字节最多可以代表的数据长度是2的8次方 11111111 在计算机中也就是 -128到127 1.BIT[M] 位字段类型,M表示每个值的位数,范围从1到64,如果M被忽略,默认为1 2.TINYINT[(M)] [UNSIGNED] [ZEROFILL]  M默认为4 很小的整数.带符号的范围是-128到127.无符号的范围是0到255. 3. BOOL,BOOLEAN 是TINYINT(1)的同义词.zero值被视为假.非zero值视为真. 4.SMAL…
在mysql中使用int相关的数据类型时, 如果不太了解其存储方式, 会产生一些误用的情况. 如: 只保存0-9之间的数字, 可能会直接用int(1). 习惯性的以为int(1)就相当于varchar(1)一样, 其实不然. 下面来说下int相关数据类型的一些简单介绍: 数据类型/字节及取值范围 类型 字节 最小值 最大值 tinyint 1 -128 127 smallint 2 -32768 32767 mediumint 3 -8388608 8388607 int 4 -21474836…
明明维护了一个1k的最小堆,可是输出到MySQL里却只有九百多行数据. 查log,发现这么一段内容: stderr logs com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long for column 'reqs' at row 1 at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3595) at com.mysql.jdbc.MysqlIO.check…
接触MySQL这个数据库大概快要两年了,不过由于没有特别深入系统的去学习,大多也是停留在一知半解的状态.今天在工作中刚好碰到了表设计的问题,顺便写篇博客,把MySQL中数据类型和字段类型选择这方面给弄清楚. MySQL中的数据类型大体分为三大类,数值类型,时间日期类型以及字符串类型.下面将对这三种类型进行详细的介绍. 一.数值类型 MySQL 支持所有标准SQL 中的数值类型,其中包括严格数值类型(INTEGER.SMALLINT.DECIMAL 和NUMERIC),以及近似数值数据类型(FLO…
在一开始接触MySQL数据库时,对于int(M)及tinyint(M)两者数值类型后面的M值理解是最多能够插入数据库中的值不能大于M: 后来工作后,也是一边学习一边使用,之后的理解是其中的M的意思是插入数据库中的值的字符长度不能大于M,例如,int(4),想要插入1234,1234的字符长度是4,就正好可以插入数据库,12341就不行,因为是5个字符长度,这也都是道听途说,自己从来没有验证过: 如今,由于面试中经常会被问到有关数据库方面的知识,今天也想着深入了解下这个M代表的含义(上述两个理解都…
int类型: int bigint smallint 和 tinyint 类型,如果创建新表时没有指定 int(M) 中的M时,默认分别是 : int           -------     int(11) bigint       -------     bigint(20) smallint   -------     smallint(6) tinyint      -------     tinyint(4) MySQL支持选择在该类型关键字后面的括号内指定整数值的显示宽度(例如,I…
长度范围是随数据类型就已经是固定的值,而显示宽度与长度范围无关. 以下是每个整数类型的存储和范围(来自MySQL手册) 类型 字节 最小值 最大值 (带符号的/无符号的) (带符号的/无符号的) 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 -922…
注意:这里的(3)代表的并不是存储在数据库中的具体的长度,以前总是会误以为int(3)只能存储3个长度的数字,int(11)就会存储11个长度的数字,这是大错特错的. 其实当我们在选择使用int的类型的时候,不论是int(3)还是int(11),它在数据库里面存储的都是4个字节的长度,在使用int(3)的时候如果你输入的是10,会默认给你存储位010,也就是说这个3代表的是默认的一个长度,当你不足3位时,会帮你不全,当你超过3位时,就没有任何的影响. 前天组管问我 int(10)与int(11)…
1.这里的int(11) 与int的大小和存储字节,没有一毛钱关系,int的存储字节是4个字节,最大值为 65536*65536 = 40多亿,对于有符号的int,是20多亿.2.那么这里的(11) 表示什么意思? 考虑下面的需求,ID字段显示宽度为2,宽度不够的补充0.3.测试如下:mysql> desc student;+-------+-------------+------+-----+---------+-------+| Field | Type | Null | Key | Def…
对于INT型,MySQL支持指定显示宽度例如:int(5):表示如果数值宽度小于5位,则填满宽度,保证总宽度为5位.默认为int(11),配合zerofill可以看到效果. DROP TABLE IF EXISTS tab_5; CREATE TABLE tab_5(id int(5))ENGINE=innodbDEFAULT CHARSET=utf8; INSERT INTO tab_5VALUES (123); INSERT INTO tab_5VALUES (12345); INSERT…
这里要注意,cast(XX as varcahr(10))在mysql中不好使,要cast(XX as char(10))这样才好使…
最近使用mysql数据库的时候遇到了多种数字的类型,主要有int,bigint,smallint和tinyint.其中比较迷惑的是int和smallint的差别.今天就在网上仔细找了找,找到如下内容,留档做个总结: 使用整数数据的精确数字数据类型. bigint 从 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型数据(所有数字).存储大小为 8 个字节. P.S. bigint已经有长度了,在mysql建表中的len…
bigint 从 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型数据(所有数字).存储大小为 8 个字节. P.S. bigint已经有长度了,在mysql建表中的length,只是用于显示的位数 int 从 -2^31 (-2,147,483,648) 到 2^31 – 1 (2,147,483,647) 的整型数据(所有数字).存储大小为 4 个字节.int 的 SQL-92 同义字为 integer. smal…
最近使用mysql数据库的时候遇到了多种数字的类型,主要有int,bigint,smallint和tinyint.其中比较迷惑的是int和smallint的差别.今天就在网上仔细找了找,找到如下内容,留档做个总结: 使用整数数据的精确数字数据类型. bigint 从 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型数据(所有数字).存储大小为 8 个字节. P.S. bigint已经有长度了,在mysql建表中的len…
问题: mysql的字段,unsigned int(3), 和unsinged int(6), 能存储的数值范围是否相同.如果不同,分别是多大?int(0) 能存多少位数字? 不同,int(3)最多显示3位无符号整体,int(6)最多显示6位无符号数. 如果你的答案和上面的一致,恭喜你和我犯了一样的错误. 真实情况:我们建立下面这张表: CREATE TABLE `test` ( `id` ) unsigned NOT NULL AUTO_INCREMENT, `i1` ) unsigned z…
我们在数据库中设置一个int类型,设置好长度,然后会发现并没有受到长度的限制,这是因为,int值的范围和这个长度根本没有关系. int的存储大小是4个字节(B), 计算机存储单位的换算: 1B=8b 1KB=1024B 1MB=1024KB 即4B=32b,也就是二进制的32个1,我们算一下二进制下32个1等于十进制的多少: 小插曲,我在网上找的进制转换,上图中是31个1,已经是int类型的最大值了,因为这个工具不支持负数,相当于无负数,但是: 在计算机中,数字最高位是符号位,即正负,正为0,负…
各种整形,总结留作参考. bigint 从 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型数据(所有数字).存储大小为 8 个字节. int 从 -2^31 (-2,147,483,648) 到 2^31 – 1 (2,147,483,647) 的整型数据(所有数字).存储大小为 4 个字节.int 的 SQL-92 同义字为 integer. smallint 从 -2^15 (-32,768) 到 2^15 –…
先来看下面的图片 声明字段是int类型的那一刻起,int就是占四个字节,一个字节8位,也就是4*8=32,可以表示的数字个数是2的32次方(2^32 = 4 294 967 296个数字). 4 294 967 296个数字也就是0~4 294 967 295,当然如果区分正负号的话所存的数字会比较小.…
2017-12-18 @后厂 int(M): M indicates the maximum display width for integer types. 原来,在 int(M) 中,M 的值跟 int(M) 所占多少存储空间并无任何关系. int(3).int(4).int(8) 在磁盘上都是占用 4 btyes 的存储空间. 说白了,除了显示给用户的方式有点不同外,int(M) 跟 int 数据类型是相同的. mysql> drop table if exists t; mysql>…
使用整数数据的精确数字数据类型. bigint 从 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型数据(所有数字).存储大小为 8 个字节. int 从 -2^31 (-2,147,483,648) 到 2^31 - 1 (2,147,483,647) 的整型数据(所有数字).存储大小为 4 个字节.int 的 SQL-92 同义字为 integer. smallint 从 -2^15 (-32,768) 到 2^1…
(转载)http://qjoycn.iteye.com/blog/1288435 今天发现了一个错误:Could not execute JDBC batch update 最后发现原因是SQL语句长度大于1M,而我机器上的mysql是默认设置,也就是说mysql通讯的数据包大小设置是1M,这就造成sql语句执行失败.于是把mysql的配置文件(my.ini)中的max_allowed_packet = 6M变大,问题就解决了.…