mysql中int、bigint、smallint 和 tinyint的区别详细介绍
来源:互联网 发布:java连接池原理 编辑:程序博客网 时间:2024/05/22 04:56
原文:
http://www.cnblogs.com/yiwd/p/5531167.html
1 bytes = 8 bit ,一个字节最多可以代表的数据长度是2的8次方 11111111 在计算机中也就是-128到127
BIT[M]
位字段类型,M表示每个值的位数,范围从1到64,如果M被忽略,默认为1TINYINT[(M)] [UNSIGNED] [ZEROFILL] M默认为4。
很小的整数。带符号的范围是-128到127。无符号的范围是0到255。BOOL,BOOLEAN
是TINYINT(1)的同义词。zero值被视为假。非zero值视为真。SMALLINT[(M)] [UNSIGNED] [ZEROFILL] M默认为6
小的整数。带符号的范围是-32768到32767。无符号的范围是0到65535。MEDIUMINT[(M)] [UNSIGNED] [ZEROFILL] M默认为9
中等大小的整数。带符号的范围是-8388608到8388607。无符号的范围是0到16777215。INT[(M)] [UNSIGNED] [ZEROFILL] M默认为11
普通大小的整数。带符号的范围是-2147483648到2147483647。无符号的范围是0到4294967295。BIGINT[(M)] [UNSIGNED] [ZEROFILL] M默认为20
大整数。带符号的范围是-9223372036854775808到9223372036854775807。无符号的范围是0到18446744073709551615。
注意:这里的M代表的并不是存储在数据库中的具体的长度,以前总是会误以为int(3)只能存储3个长度的数字,int(11)就会存储11个长度的数字,这是大错特错的。
tinyint(1) 和 tinyint(4) 中的1和4并不表示存储长度,只有字段指定zerofill是有用,
如tinyint(4),如果实际值是2,如果列指定了zerofill,查询结果就是0002,左边用0来填充。
char是一种固定长度的类型,varchar则是一种可变长度的类型,它们的区别是:
char(M)类型的数据列里,每个值都占用M个字节,如果某个长度小于M,MySQL就会在它的右边用空格字符补足.
(在检索操作中那些填补出来的空格字符将被去掉)
在varchar(M)类型的数据列里,每个值只占用刚好够用的字节再加上一个用来记录其长度的字节(即总长度为L+1字节).
在MySQL中用来判断是否需要进行对据列类型转换的规则
1、在一个数据表里,如果每一个数据列的长度都是固定的,那么每一个数据行的长度也将是固定的.
2、只要数据表里有一个数据列的长度的可变的,那么各数据行的长度都是可变的.
3、如果某个数据表里的数据行的长度是可变的,那么,为了节约存储空间,MySQL会把这个数据表里的固定长度类型的数据列转换为相应的可变长度类型.
例外:长度小于4个字符的char数据列不会被转换为varchar类型
- MySQL中int、bigint、smallint和tinyint的详细介绍
- mysql中int、bigint、smallint 和 tinyint的区别详细介绍
- mysql中int、bigint、smallint 和 tinyint的区别详细介绍
- mysql中int、bigint、smallint 和 tinyint的区别详细介绍
- mysql中int、bigint、smallint 和 tinyint的区别详细介绍
- mysql中int、bigint、smallint 和 tinyint的区别详细介绍
- mysql中int、bigint、smallint 和 tinyint的区别详细介绍
- mysql中int、bigint、smallint 和 tinyint的区别详细介绍
- mysql中int、bigint、smallint 和 tinyint的区别详细介绍
- mysql中int、bigint、smallint 和 tinyint的区别详细介绍
- mysql中int、bigint、smallint 和 tinyint的区别详细介绍
- mysql中int、bigint、smallint 和 tinyint的区别详细介绍
- mysql中int、bigint、smallint 和 tinyint的区别详细介绍
- mysql中int、bigint、smallint 和 tinyint的区别详细介绍
- mysql中int、bigint、smallint 和 tinyint的区别详细介绍
- mysql中int、bigint、smallint 和 tinyint的区别详细介绍
- mysql中int、bigint、smallint 和 tinyint的区别详细介绍
- mysql中int、bigint、smallint 和 tinyint的区别详细介绍
- C# 线程池ThreadPool的用法,多线程编程
- hadoop2.2.0伪分布搭建
- Maven系列--pom.xml 配置详解
- 阿里云服务器升级导致挂载硬盘丢失进行重新挂载
- 这可能是最全的Android:Process (进程)讲解了
- mysql中int、bigint、smallint 和 tinyint的区别详细介绍
- 冒泡排序 快速排序 选择排序 插入排序
- android系统资源添加
- NV12 和 NV21的区别
- 字符串反转
- 贝叶斯网络学习多节点处理技巧
- LR报错:error -26000:error out of memory解决办法
- 德国纯元素,呵护宝宝娇嫩肌肤
- Ubuntu下Nginx安装与使用