【解惑】mysql字段长度什么意思

【解惑】mysql字段长度什么意思

今天简单说说mysql字段不同类型的长度,显示宽度,数据存储占用硬盘大小

首先来说最常用的整型,mysql的整型又分为五种小类型:

1、tinyint

2、smallint

3、mediumint

4、int

5、bigint

这五种整型的主要区别是数据库存储的时候会占用几个字节,限制的整数的范围(最大值最小值)不同。

这五种整型的相同点是都可以设置有符号和无符号,所谓的符号就是正负号

tinyint:

数据存储:占用1个字节(一个字节等于8位二进制

取值范围:①有符号的情况下,-(2的7次方)到(2的7次方-1);②无符号的情况下,(0)到(2的8次方-1)

tinyint(4)是什么意思?其实这里的4代表的是显示宽度,比如字段设置0填充的时候会有4个0占位例如(0000)(0001)(0011)(0255)

tinyint(3)是什么意思?其实这里的3代表的是显示宽度,比如字段设置0填充的时候会有3个0占位例如(000)(001)(011)(255)

tinyint(2)是什么意思?其实这里的2代表的是显示宽度,比如字段设置0填充的时候会有2个0占位例如(00)(01)(11)(255)

所以无论是4,3,2,1哪种宽度存入的最大值和最小值是不变的,并且mysql在存数据的时候也是要占用1个字节。

同理剩下的四中类型也是一样,我们简单说下:

smallint:

数据存储:占用2个字节(一个字节等于8位二进制

取值范围:①有符号情况下,-(2的15次方)到(2的15次方-1);②无符号的情况下,(0)到(2的16次方-1)

smallint(5)也表示显示宽度不细说了

mediumint:

数据存储:占用3个字节(一个字节等于8位二进制

取值范围:①有符号情况下,-(2的23次方)到(2的23次方-1);②无符号的情况下,(0)到(2的24次方-1)

int:

数据存储:占用4个字节(一个字节等于8位二进制

取值范围:①有符号情况下,-(2的31次方)到(2的31次方-1);②无符号的情况下,(0)到(2的32次方-1)

bigint:

数据存储:占用8个字节(一个字节等于8位二进制

取值范围:①有符号情况下,-(2的63次方)到(2的63次方-1);②无符号正整数情况下,(0)到(2的64次方-1)

 

再简单说下字符串类型:

varchar(50)是什么意思呢? 这个50在mysql4.0版本及以下表示50个字节的长度,在5.0版本及以上表示的是50个字符,无论是数字,英文,还是utf8的汉字都是可以存储50个字符。

那么varchar类型最多可以存储多少字符呢,mysql5.0.3之前可以存储255个字符,5.0.3之后版本理论上讲可以存储最大65535个字符,但是这取决于所有列的字符加在一起不能大于65535这个限制。

 

 

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据