-
2018-04-20 11:04:04
mysql中int(1)和int(11)区别呢,按理来讲int定义之后长度不受我们设置的限制了,那么mysql中int(1)和int(11)区别是什么呢?
mysql字段定义中INT(x)中的x仅仅指的是显示宽度。该可选显示宽度规定用于显示宽度小于指定的列宽度的值时从左侧填满宽度。显示宽度并不限制可以在列内保存的值的范围,也不限制超过列的指定宽度的值的显示。所以x的定义与存储空间没有任何关系都是4个字节。
作为SQL标准的扩展,MySQL也支持整数类型TINYINT、MEDIUMINT和BIGINT。
在SQL语句中int代表你要创建字段的类型,int代表整型,11代表字段的长度。
这个11代表显示宽度,整数列的显示宽度与mysql需要用多少个字符来显示该列数值,与该整数需要的存储空间的大小都没有关系,比如,不管设定了显示宽度是多少个字符,bigint都要占用8个字节。
int是整型,(11)是指显示字符的长度,但要加参数的,最大为255,比如它是记录行数的id,插入10笔资料,它就显示00000000001 ~~~00000000010,当字符的位数超过11,它也只显示11位,如果你没有加那个让它未满11位就前面加0的参数,它不会在前面加0
声明整型数据列时,我们可以为它指定个显示宽度M(1~255),如INT(5),指定显示宽度为5个字符,如果没有给它指定显示宽度,MySQL会为它指定一个默认值。显示宽度只用于显示,并不能限制取值范围和占用空间,如:INT(3)会占用4个字节的存储空间,并且允许的最大值也不会是999,而是 INT整型所允许的最大值。
MySQL有五种整型数据列类型,即TINYINT,SMALLINT,MEDIUMINT,INT和BIGINT。它们之间的区别是取值范围不同,存储空间也各不相同。
在整型数据列后加上UNSIGNED属性可以禁止负数,取值从0开始。更多相关内容 -
int(1)和int(11)的区别
2018-02-04 00:50:32creata table t(x int(1) zerofill,y int(11) zerofill); insert into t(x,y) values(1,1); select x,y from t; 然后我们再创建一张表 我们比较一下可以发现int(1)和int(11)使用zerofill后两者...在cmd中进入数据库中
creata table t(x int(1) zerofill,y int(11) zerofill);
insert into t(x,y) values(1,1);
select x,y from t;
然后我们再创建一张表
我们比较一下可以发现int(1)和int(11)使用zerofill后两者才会有所区别,当没有加zerofill时候两者是没有任何区别的.
因此当结合可选扩展属性zerofill使用时, 默认补充的空格用零代替。例如,对于声明为INT(5) zerofill的列,值4检索为00004。 请注意如果在整数列保存超过显示宽度的一个值,当MySQL为复杂联接生成临时表时会遇到问题,因为在这些情况下MySQL相信数据适合原列宽度。
所有整数类型可以有一个可选(非标准)属性UNSIGNED。当你想要在列内只允许非负数和该列需要较大的上限数值范围时可以使用无符号值 。 如果设置了zerofill扩展属性试,默认就有了无符号属性(UNSIGNED)
所以INT(1)与INT(11)后的括号中的字符表示显示宽度,整数列的显示宽度与MySQL需要用多少个字符来显示该列数值,与该整数需要的存储空间的大小都没有关系,INT类型的字段能存储的数据上限还是2147483647(有符号型)和4294967295(无符号型)。其实当我们在选择使用INT的类型的时候,不论是INT(1)还是INT(11),它在数据库里面存储的都是4个字节的长度。
mysql> desc t2; +-------+---------------------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+---------------------------+------+-----+---------+-------+ | id | int(1) unsigned zerofill | YES | | NULL | | | uid | int(11) unsigned zerofill | YES | | NULL | | +-------+---------------------------+------+-----+---------+-------+ 2 rows in set (0.00 sec) mysql>
mysql> insert into t2 select 123456,123456789; Query OK, 1 row affected (0.01 sec) Records: 1 Duplicates: 0 Warnings: 0 mysql> insert into t2 select 123456,1234567899; Query OK, 1 row affected (0.01 sec) Records: 1 Duplicates: 0 Warnings: 0 mysql> select * from t2; +--------+-------------+ | id | uid | +--------+-------------+ | 123456 | 00123456789 | | 123456 | 01234567899 | +--------+-------------+ 2 rows in set (0.00 sec) mysql>
总结一下:INT(M) ZEROFILL,加上ZEROFILL后M才表现出不同,比如 INT(3) ZEROFILL,你插入到数据库里的是10,则实际插入为010,也就是在前面补充加了一个0.如果INT(3)和INT(10)不加ZEROFILL,则它们没有什么区别.M不是用来限制INT列内保存值的范围的.int(M)的最大值和最小值与UNSIGNED有关。
-
MySQL的数据类型以及int(11)的理解
2017-05-24 01:06:11在MySQL中,大致可以分成如下几种类型: 1.数值型(1)整型 数据类型 占的字节数 有符号范围 tinyint(m) 1个字节 范围(-128~127) smallint(m) 2个字节 范围(-32768~32767) ... int(m) 4个字节 范围(-在MySQL中,大致可以分成如下几种类型:
1.数值型
(1)整型
数据类型 占的字节数 有符号范围 tinyint(m) 1个字节 范围(-128~127) smallint(m) 2个字节 范围(-32768~32767) mediumint(m) 3个字节 范围(-8388608~8388607) int(m) 4个字节 范围(-2147483648~2147483647) bigint(m) 8个字节 范围(+-9.22*10的18次方) 注意:
1.取值范围如果加了unsigned,则最大值翻倍,如tinyint unsigned的取值范围为(0~256)。
2.int(m)里的m是表示SELECT查询结果集中的显示宽度,并不影响实际的取值范围,没有影响到显示的宽度,个人觉得加m没用
3.如果向数据库中加范围以外的值是加不进去的,会报错误(2)浮点型
数据类型 占的字节数 有效位数 float(m,d) 4字节 8位 double(m,d) 8字节 16位 其中:
m=整数位数+小数位数
d=小数位数
设一个字段定义为float(5,2),如果插入一个123.456,数据库只会存123.46;不可以插入整数位大于3(即5-2)的数字。(3)定点型
数据类型 字节数 decimal(m,d) m+2 浮点型在数据库中存放的是近似值,而定点类型在数据库中存放的是精确值。
其中:
m<65,d<30;2.字符型
字符型包括:char,vchar,text,blob等;
类型 长度 最多字符 char(n) 固定长度 最多255字符 vchar(n) 可变长度 最多65535字符 text 可变长度 最多65535字符 blob 可变长度 适合存照片 注意:对于name char(3),如果你插入’abcd’,会报错误(ERROR 1406 (22001): Data too long for column ‘name’ at row 1),而且不能插入数据库.对于网上有人说,超过你设定的长度会被截断,但是我测试的时候发现,超过设定长度根本不能存下,所以请以当前环境为准.
3.日期和时间类型
数据类型 占的字节数 含义 格式 date 3字节 日期 2017-01-01 time 3字节 时间 10:38:10 datetime 8字节 时间日期 2017-01-01 10:38:10 year 1字节 年 2017 例子:
insert into test(date) values(“20170101”);
或者:insert into test(date) values(“2017-01-01”);
注意:
时间戳(timestamp)系统会自动添加当前时间,格式和datetime一样。关于int(11)的理解:
例如:ID int(m);
在 integer 数据类型中,m 表示最大显示宽度。
在 int(m) 中,m 的值跟 int(m) 所占多少存储空间无任何关系。 int(3)、int(4)、int(8) 在磁盘上都是占用 4 btyes 的存储空间。唯一的不同就是显示给用户的方式不同(还要结合zerofill 才能看到)。结论:
在创建表时,完全不需要写成ID int(m),写成ID int即可,除非对显示有特定的要求。 -
MySQL数据类型int(11)括号中11的具体解释
2018-05-22 11:57:20也就是说这个在定义表的时候选择INT(11)和INT(5)对于占用的空间是没有区别的,都是4个字节,32个二进制位,可存储的值都在下表所示范围内。TypeStorage (Bytes)Minimum Value SignedMinimum Val...一、数据库中整型可以分为5种,TINYINT,SMALLINT,MEDIUMINT,INT和BIGINT,分别占用1、2、3、4和8个字节,这个是固定的。也就是说这个 在定义表的时候选择INT(11)和INT(5)对于占用的空间是没有区别的,都是4个字节,32个二进制位,可存储的值都在下表所示范围内。TypeStorage (Bytes)Minimum Value SignedMinimum Value UnsignedMaximum Value SignedMaximum Value UnsignedTINYINT1-1280127255SMALLINT2-3276803276765535MEDIUMINT3-83886080838860716777215INT4-2147483648021474836474294967295BIGINT8-2^6302^63-12^64-1二、那么问题来了,INT(11)和INT(5)的区别在哪呢?在用数据库设计工具创建表的时候,可以留意到每个字段有一个 “ZF”(zerofill)属性,如下图(WorkBench):如果我们将其勾上,插入的自增id是如下格式:此过程中, MySQL的存储引擎InnoDB会为不足5位的id用0来补齐。插入一个较大的id数据:insert into ansel(id,name,age,birthday) value(1234567,'test',1,'2018*5*22 11@29@1');
展示如下:假如创建表的时候没有设置ZF属性,可以通过sql语句修改:alter table ansel modify id int(11) zerofill;
再查询就是如下展示结果:三、总结:括号中的长度只在设置了ZF属性时有用,其他的地方没有区别;当然,5或11也限制了能储存的数字大小,这是不容忽视的。用处:有些企业级开发应用场景中,可以用于较长的订单号。Copyright © 2018 Ansel. All rights reserved.
-
MySQL bigint(20),int(11)是什么意思
2019-07-19 17:58:44MySQL中我们建表的时候,类型可以用bigint(20), 这是什么意思呢? 首先我们看bigint, MySQL的整型类型有这样几种: 类型 占用字节 ... int 4 bigint 8 这是决定存储需要占用多少字节,... -
MySQL中int(11)最大长度是多少?
2017-08-01 18:27:36今天在添加数据的时候,发现当数据类型为 int(11) 时,我当时让用户添加数据时,最大输入的长度为11位,结果,添加数据添加不上,导致出现问题,我又改为最大长度为10位,结果验证9个1的时候是正常的,再次验证9个9... -
mysql中int(1)和int(11)区别
2016-08-04 10:10:45mysql中 INT(1) INT(11) 有什么区别呢? 其实没有什么区别,仅仅只是显示宽度的区别。 INT(1) INT(11) 都是占用四个字节 只是选择了非负数的时候会有0填充而已 //INT(4) UNSIGNED ZEROFILL00010002 ...0099...... -
每日一记-mysql中的int(11)-int(4)和int类型
2016-08-03 13:41:55每日一记-mysql中的int(11)-int(4)和int类型 -
Java int 转 String 类型,java类型转换
2021-12-02 09:39:49int类型转String类型有下面几种方式: String var = num + ""; Strng var =String.valueOf(num); String var =Integer.toString(num); 这三种方法在实际使用过程中都是没有问题的 但是效率上还是有些许区别... -
为什么int类型字段在mysql中默认int(11) 无符号默认int(10)?
2017-04-24 11:53:50int类型在数据库中占4个字节(byte),即32位int有符号类型 取值在 - 2147483648 ~ 2147483647之间int无符号类型 取值在 0 ~ 4294967295之间有符号数最小值: - 2 1 4 7 4 8 3 6 4 8 1 2 3 4 5 6 7 8 9 10 11 --共11... -
int类型变量的取值范围
2020-11-06 15:04:22int类型变量的取值范围?前言 前言 在学C语言的时候应该都会先了解各种基本数据类型的初值和它们的取值范围,有些人可能会不太重视这块内容,其实很重要,很多大公司面试的过程中都会问到int的取值范围,溢出之后会... -
Golang中 int int8 int16 int32 int64的区别和取值范围
2021-01-08 19:19:47go语言中的int的大小是和操作系统位数相关的,如果是32位操作系统,int类型的大小就是4字节; 如果是64位操作系统,int类型的大小就是8个字节 取值范围 int8: -128 ~ 127 int16: -32768 ~ 32767 int32: -2147483648 ~... -
int(4)、int(8)、int(11) 分别占用几个字节 ?
2020-06-12 21:10:02int(4)、int(8)、int(11) 分别占用几个字节 ?MySQL 数据类型介绍数值类型日期/时间类型字符串类型int(4)、int(8)、int(11) 分别占用几个字节 ?MySQL 中的整数型数据类型:不同整数类型的取值范围:回归正题... -
Int8,Int16,Int32,Int64 有什么不同呢?
2021-02-03 08:50:15Int8,Int16,Int32,nt64,后面的数字有什么意义?总结 前言 Int8,Int16, Int32, Int64有什么区别呢?或者是为什么后面的数字不一样呢? 提示:以下是本篇文章正文内容 什么是计算机存储单元? 先来扫盲一下计算机... -
int函数(int函数的使用方法举例)
2021-05-21 17:43:46int 函数表示的是函数的返回值类型为int型的数据。每个函数执行完毕后可以产生一个结果,我是说可以,你当然也可以不用。举个例子。int max(int a, int b) { if (a>b) return.是2005年6月,在EXCEL中如何用INT... -
MySQL int类型
2021-03-03 21:27:17在本教程中,您将了解MySQL INT或整数数据类型以及如何在数据库表设计中使用它。 另外,我们将向您展示如何使用表中整数列的显示宽度和ZEROFILL属性。MySQL INT类型简介在MySQL中,INT代表整数。整数可以写成没有... -
stdint.h头文件
2013-07-13 16:47:50很多项目经常使用的两个头文件inttypes.h stdint.h,否则会报错。网上很多资料,但基本上不可用。这两个文件,我在自己的项目中运行良好。 -
Golang中int, int8, int16, int32, int64区别
2019-11-21 20:45:49猫哥写Golang过程中,遇到整数常用int,因为可以少打至少一个字符。 T_T 一直没有意识到其实各个int还是有区别的,起码是内存空间上的区别。 一段简单粗暴的程序,描述一下区别: package main import ( "fmt... -
int2 int4 int8 int的值域范围都是多少?
2020-03-14 10:40:29int2 是2字节 有符号整型, 符号占1位,余下15位2进制位表示数值 int4 是4字节 有符号整型符号占1位,余下31位2进制位表示数值 int8 是8字节 有符号整型 符号占1位,余下63位2进制位表示数值 ... -
Golang中uint、int, int8, int16, int32, int64区别
2020-04-30 15:30:54Golang中uint、int, int8, int16, int32, int64区别 在第一次学习go语言时,对go语言的各种int类型充满疑惑,为什么会有int、int8、int16等等的类型呢?为什么不像java一样,只个int类型呢?直接上demo test.go ... -
C语言基本数据类型int, short int, long int, long long int, unsigned int, signed int等解析
2019-07-27 20:47:07int类型是有符号整型,即int类型的值必须是整数,可以是正整数,负整数,零。 int类型取值范围因计算机系统而异。早起的16位IBM PC兼容机使用16位来存储一个int值,其取值范围是-32769 ~32768。目前个人计算机一般... -
Java 两个整数 除法的精度问题 int / int
2020-09-18 23:00:39文章目录两个 int 变量的除法运算 结果的精度问题Java中其他基本类型的运算规则 && 数值存储规则延伸 两个 int 变量的除法运算 结果的精度问题 代码如下: public class Test { public static void main... -
int、long int 和 long long int 的取值范围
2020-07-18 14:28:56int、long int 和 long long int 的取值范围 我们在做整型数字运算时,经常会遇到由于数字值极大导致的结果溢出,导致我们得到错误的结果,大多数情况下将变量定义为 long long int 即可。 为了便于理解,我们需要... -
int int& int * int**的区别、联系和用途
2017-11-26 16:35:161、int; int是C++关键字,表示整型,其大小是32位有符号整型,表示的范围是-2,147,483,648 到 2,147,483,647;在声明和定义变量时使用,它表示的意思是所声明或所定义的变量为整型变量。 如果其用于... -
C++中int *a; int &a; int & *a; int * &a
2018-12-01 22:10:06int i; int *a = &i; //这里a是一个指针,它指向变量i int &b = i; //这里b是一个引用,它是变量i的引用(别名) int * &c = a; //这里c是一个引用,它是指针a的引用 ... -
pandas: transfer Int64Index to int 将Int64Index转换为int类型
2019-09-27 17:31:11在使用pandas时,常常需要选出某一行的index作为结果,但是想要再使用这个index的值作为之后代码的输入时,往往需要int类型,而pandas返回的值都是Int64Index类型,不能直接使用,在尝试了astype() 和int(index)强制... -
4.1 int类型介绍
2019-12-30 17:15:474.1 int类型介绍 4.2 char类型介绍 4.3 float、double类型介绍 4.4 小结及其他数据类型简单介绍 4.5 类型大小 C语言提供了许多整数类型,为什么一种类型不够用?因为 C语言让程序员针对不同情况选择不同的... -
python float转int
2020-12-07 11:59:10一、int函数能够(1)把符合数学格式的数字型字符串转换成整数(2)把浮点数转换成整数,但是只是简单的取整,而非四舍五入。举例:1 aa = int("124") #Correct2 print "aa = ", aa #result=1243 bb = int(123.45) #...