[每日更新-MySQL基础]5.常用的数据类型-整数和字符串

1.    数据类型

在学习PHP的时候我们已经讲过数据类型了,所谓数据类型就是数据的格式。每一种数据类型在计算机中存储的方式会有差异,占用的存储容量也有区别,所以选择合适的数据类型可以节约我们的存储成本,也方便我们的程序运行和开发效率。


1.1    整数类型

表示:int

在PHP中,要存储一个整数类型需要4个字节,在MYSQL中,这个Int是可以手动指定的,它根据你选择的长度来计算使用的字节数。标准的整数类型也是4个字节。


在定义表的时候,如果选择了int型,那么需要设置一个长度,根据长度会自动将该字段的容量定下来,不能存储超过容量的数据。


所以在考虑字段的时候,我们要知道要存储的数据最大是多少,按照最大的数字选择存储的长度。一旦选择了,空间就被固定了!


整数包含正整数和负整数。但MySQL中也可以只存储正整数。也就是没有负数,最小是就是0,使用unsigned属性,可以让字段变成没有负数的字段。




1.2    小数类型

表示:float/double/decimal

在mysql中,浮点型和定点型可以用类型名称后加上M/D来表示值的长度,M代表值的总长度,D表示小数点后的位数。M和D又称之为精度和标度。如:float(5,2)表示:精度为5,小数点后有2位,则最大值就是:999.99。假设我们存入的数据是(100.009)那么这个值不满足我们存储的要求(5,2)所以它会将值进行四舍五入,变成(100.01)来存储。


注意: 在mysql中 float 和double在不指定精度的时候,默认以实际的精度显示,而decimal在不指定精度的时候,默认整数部分10,小数部分0


在PHP中小数没有单双精度的区别,而在MYSQL中有,

float占用4个字节,属于单精度

double占用8个字节,属于双精度


需要注意的是,计算机都不能很好的处理小数,他们保存的都是近似值,所以最好不要拿小数进行精确计算和精确比较。


小数也有正小数和负小数,也可以通过unsigned来去除符号。



1.3    字符串类型

表示:char/varchar/text


1.3.1    char

定长的字符串类型。申明:char(长度值)

一旦定义长度,不管存储的字符够不够这么长,都存储这么多字节、所以在使用的时候,要考虑到存储的数据长度会不会变化,如果需要变化,那么char类型就不适合你。


1.3.2    varchar

可变长度的字符串

varchar类型是用得比较多的一种类型,它可以根据数据的内容长度来改变存储的字节数。在申明的时候,同样需要传入一个长度如:varchar(255),255表示最长可以存储255,但是如果没有这么多的话,存储的时候就不会占用更多的存储空间。


注意:varchar会额外拿出一到两个字节来存储数据的真实长度,所以存储:abcd的时候,占用的空间会是:4+1,这里的1是用来存储数据真实长度的。


如果数据的长度超过255个字符,那么存储真实长度的空间就会变成2.

varchar类型可以存储65535个字符。


那char和varchar应该如何选择呢?

char类型: 计算更加快速

varchar类型: 更节省空间。


根据你的需要自己决定。



1.3.3    text

text用来存储更大类型的字符串。

它也是变长的。所以我们建议大家,将长度大于255的字符串都存为text类型。

对应的text类型有4个:

tinytext    text    mediumtext  longtext

依次存储的长度不一样,根据自己的需要去选择,一般情况下,一篇文章,使用text类型已经足够了。









猜你喜欢

转载自blog.51cto.com/toulen/2155277