关于 MySQL int tinyint 类型的那点事

1.MySQL字段规定类型之后,存储是定长的,int(1)和int(4)从本身长度还是存储方式上都是一样的。mysql里,int(1)和int(4)的区别就是显示的长度,但是要设置一个参数:如果列制定了zerofill 就会用0填充显示,如2 int(3)指定后就会显示为002。

2.int 存储占4个字节, tinyint   存储占1个字节,存储长度决定了他们表示的数字范围不同。int表示的数字范围是:从 -2^31 (-2,147,483,648) 到 2^31 – 1 (2,147,483,647) 的整型数据(所有数字)。tinyint 表示的范围是0-255之间的数字。

3.tinyint(1),和tinyint(3)没什么区别,存123都能存的下,而如果tinyint(3) zerofill 的话,插入值 12,会存储012,zerofill自动左边补零,这才是限制显示长度。

我把限制显示长度理解成了  tinyint(1) 存123 应该只存其中一个数字。

下面是精简总结:

tinyint(1)  和 tinyint(3) 没什么区别,占用字节都是一位,存储范围都是一样的。

tinyint(3) zerofill ,当插入的数据少于3位的时候,左边自动补零,这才是限制显示长度啊。

int(1) 和 tinyint(1) ,够用的情况下,优先选择tinyint(1),因为占字节少、节省空间。

tinyint一个字节   smallint  两个字节   MEDIUMINT三个字节  int 4个字节  BIGINT 8个字节。

但是,varchar(5)  这里的5 限制的是储存字符的个数,字符不分贵贱( 是不分 中文、英文、数字...)。

总结数据来源于网络。。。

关于 MySQL int tinyint 类型的那点事

时间: 2024-12-21 00:28:30

关于 MySQL int tinyint 类型的那点事的相关文章

MySQL INT,TINYINT,SMALLINT,BIGINT用法和应用

MySQL INT,TINYINT,SMALLINT,BIGINT用法和应用,MySQL支持所有标准SQL整数类型INTEGER.INT和SMALLINT. 此外,MySQL提供TINYINT, MEDIUMINT,BIGINT作为标准SQL的扩展,由于整数类型表示精确数字,因此通常将其用作表的主键.此外,INT列可以具有AUTO_INCREMENT属性.1,取值范围 2,用途 因此通常将其用作表的主键id还可以 外键,时间,排序等 USE huthondb; CREATE TABLE item

kettle中使用mysql的tinyint 类型到slqserver的tinyint类型

各个数据库之间的类型 定义还是有差别的 一下是我在工作中遇到的一个很奇葩的问题  mysql 中的 tinyint 类型 插入到sqlserver 的tinyint 类型 插入到 sqlserver的 指定类型字段(tinyint ) 值全部是 1 解决步骤: 1.在DB连接那里配置数据库连接的高级--支持布尔数据类型 勾选去掉 2.在SQL那里转换相对应的字段类型,比如:cast(seller_rate as char)  seller_rate

mysql int(1) 与 tinyint(1) 有什么区别?

http://www.cnblogs.com/xiaochaohuashengmi/archive/2011/08/25/2153016.html mysql int(1) tinyint(1)有什么区别?我指定了字段长度,类型还有意义吗? Reply: mysql 中int(1)和tinyint(1)中的1只是指定显示长度,并不表示存储长度,只有字段指定zerofill是有用如int(3),如果实际值是2,如果列指定了zerofill,查询结果就是002,左边用0来填充. TINYINT[(M

Mysql中把varchar类型的字段转化为tinyint类型的字段

因为之前不知道tinyint类型的用法,所以将一些状态属性字段类型设置成了varchar类型,然后用"是"和"否"来判断状态 后来了解到了tinyint,就想试着用一下,但是要把varchar类型的字段转化为tinyint类型的字段,探索方法如下: 1.将表里面的所有"是"或者"否"改成 0,因为当前字段类型是varchar,所以这一步更改是没有问题的 2.运行下面的SQL语句 ALTER TABLE 表名 MODIFY CO

mysql数据的类型以及字段的约束问题【重点】

1.确保mysql字段[包括库名.表名]的正确,必要使用反引号 2.校对集指的是字符之间的关系[对字段值的字符处理]校对集依赖于字符集校对集:在某个字符集下面,这些字符的排序关系称之为校对集[对字段进行某种排序处理] 在phpmyadmin中设置库的编码,使用的ci结尾的编码就是使用了校对集[默认是使用的,但是其实校对集基本用不上] _bin:二进制编码层面直接比较_ci:忽略大小写_cs:不忽略大小写[http://www.jb51.net/article/30865.htm] 3.整型介绍s

mysql int(3)与int(11)的区别

总结,int(M) zerofill,加上zerofill后M才表现出有点点效果,比如 int(3) zerofill,你插入到数据库里的是10,则实际插入为010,也就是在前面补充加了一个0.如果int(3)和int(10)不加zerofill,则它们没有什么区别.M不是用来限制int个数的.int(M)的最大值和最小值与undesigned有关,最下面那副图有说明. mysql> create table t (t int(3) zerofill);Query OK, 0 rows affe

MySQL 常用字段类型,介绍及其建表使用方法经验分享

由于工作的公司没有专业的DBA又经常需要建立各种各种的表来满足自己的业务逻辑,所以经常查看MySQL 手册或者谷歌查看相关资料,所以本人就根据我的工作经验和相关资料来介绍一下MySQL各种字段类型及其使用.(由于本人还算是菜鸟哪里写的不对请多多指正,有兴趣的可以探讨一下) MySQL字段类型 int型包括(tinyint, smallint, mediumint, int, bigint) tinyint是1个字节表达范围就是2的8次方(-128-128) 或者(0-255) 很多人不明白为什么

mysql数据库TINYINT取值范围详解

分享下mysql中TINYINT的取值范围,很基础的一些内容. 在MySQL的数据类型中,Tinyint的取值范围是:带符号的范围是-128到127.无符号的范围是0到255(见官方<MySQL 5.1参考手册>http://dev.mysql.com/doc/refman/5.1/zh/column-types.html#numeric-types). Tinyint占用1字节的存储空间,即8位(bit).那么Tinyint的取值范围怎么来的呢?先看无符号的情况.无符号的最小值即全部8位(b

mysql int(m)与int(m)的差别

预计大多数開始接触mysql的朋友们都会有这个问题:int(M) 里面的数值究竟是什么意思? 依据相关资料总结了下: int(M) zerofill,加上zerofill后M才表现出有点点效果,比方 int(3) zerofill,你插入到数据库里的是10,则实际插入为010,也就是在前面补充加了一个0.假设int(3)和int(10)不加zerofill,则它们没有什么差别.M不是用来限制int个数的.int(M)的最大值和最小值与undesigned有关,最以下那副图有说明. mysql>